Baca dalam bahasa Inggris

Bagikan melalui


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 seperti if (a == a), karena penggunaan logika terner dalam T-SQL. Jika Anda menggunakan true atau false, Anda menghindari kemungkinan kebingungan ini.

Contoh

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++;  
        }  
    }  
}