コンパイラの警告 (レベル 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++;
}
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。