編譯器警告 (層級 3) CS1718
對同一個變數進行比較; 您是否想要比較別的東西?
如果您想要與其他項目相比較,請更正陳述式。
但另一種可能性是您在測試為 true 或 false,並使用陳述式例如 if (a == a) (true)
或 if (a < a) (false)
進行。 基於下列兩個原因,最好使用 if (true)
或 if (false)
:
它比較簡單:只說您心中所指的永遠比較清楚。
有助於避免混淆:C# 2.0 的一項新功能是可為 Null 的實值類型,類似於 T-SQL (SQL Server 所使用的程式設計語言) 中的
null
值。 熟悉 T-SQL 的開發人員可能會擔心可為 Null 值的類型,對例如if (a == a)
的運算式有什麼影響,因為在 T-SQL 中使用三元邏輯。 如果您使用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++;
}
}
}