英語で読む

次の方法で共有


コンパイラの警告 (レベル 3) CS1718

同じ変数と比較されました。他の変数と比較しますか?

別のものと比較する場合は、単にステートメントを修正します。

あるいは、 if (a == a) (true)if (a < a) (false)などのステートメントによって真または偽のテストを実施しようとした可能性もあります。 次の 2 つの理由から、if (true) または if (false) を使用することをお勧めします。

  • こちらの方が簡単です。率直な表現の方が常に明快になります。

  • 混乱の回避に役立ちます。C# 2.0 の新機能は Null 許容の値型ですが、これは T-SQL (SQL Server で使用するプログラミング言語) の値 null に似ています。 T-SQL では三値論理を使用するため、T-SQL に慣れた開発者は、Null 許容の値型が if (a == a) などの式に及ぼす影響について懸念する可能性があります。 true または falseを使用すると、このような混乱を避けることができます。

次のコードでは、警告 CS1718 が生成されます。

C#
// CS1718.cs  
using System;  
public class Tester
{  
    public static void Main()
    {
        int i = 0;  
        if (i == i) { // CS1718.cs  
        //if (true) {
            i++;  
        }  
    }  
}