コンパイラの警告 (レベル 3) CS1718
更新 : 2007 年 11 月
エラー メッセージ
同じ変数と比較されました。他の変数と比較しますか?
単に比較対象を間違って指定した場合は、ステートメントを正しく修正してください。
または、if (a == a) (true) や if (a < a) (false) などのステートメントで、true か false かを判定している場合も考えられます。その場合は、単に if (true) または if (false) のように記述することをお勧めします。これには 2 つの理由があります。
コードが簡潔になります。表現を簡潔にした方が、コードが明快になります。
混乱を防ぐことができます。C# 2.0 の新機能として、null 許容値型を使用できます。これは、SQL Server で使用されているプログラミング言語 T-SQL における null 値とよく似ています。T-SQL の使用経験のある開発者が if (a == a) のような式を見ると、三項条件のロジックを想像し、null 許容型の影響について誤解を招く可能性があります。true または false を使用することにより、このような誤解を防ぐことができます。
使用例
次のコードでは、CS1718 警告が生成されます。
// CS1718.cs
using System;
public class Tester
{
public static void Main()
{
int i = 0;
if (i == i) { // CS1718.cs
//if (true) {
i++;
}
}
}