Peringatan Pengompilasi (level 3) CS1718
Perbandingan dibuat dengan variabel yang sama; apakah Anda bermaksud membandingkan sesuatu yang lain?
Jika Anda ingin membandingkan sesuatu yang lain, maka perbaiki pernyataan tersebut.
Tetapi ada kemungkinan lain bahwa Anda menguji true atau false, dan melakukannya dengan pernyataan seperti if (a == a) (true)
atau if (a < a) (false)
. Lebih baik gunakan if (true)
atau if (false)
, karena dua alasan berikut:
Lebih sederhana. Menyatakan apa yang Anda maksud adalah hal paling sederhana.
Membantu menghindari kebingungan. Fitur baru C# 2.0 adalah jenis nilai yang dapat diubah ke null, yang dianalogikan dengan nilai
null
dalam T-SQL, bahasa pemrograman yang digunakan oleh SQL Server. Pengembang yang terbiasa dengan T-SQL mungkin memperhatikan efek jenis nilai yang dapat diubah ke null pada ekspresi sepertiif (a == a)
, karena penggunaan logika terner dalam T-SQL. Jika Anda menggunakantrue
ataufalse
, Anda menghindari kemungkinan kebingungan ini.
Kode berikut menghasilkan peringatan CS1718.
// CS1718.cs
using System;
public class Tester
{
public static void Main()
{
int i = 0;
if (i == i) { // CS1718.cs
//if (true) {
i++;
}
}
}
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: