更新:2007 年 11 月

错误消息

对同一变量进行比较;您是要比较其他变量吗?

如果您是要比较其他变量,则您只需更正语句。

但另一种可能是您要测试真假值,并通过类似 if (a == a) (true)if (a < a) (false) 这样的语句来完成此操作。最好简单地说成 if (true)if (false)。这有两个原因:

  • 它更简单;更清楚地表达您的意思。

  • 它可以避免混淆:C# 2.0 的一个新特性就是可为 null 的值类型,这类似于 T-SQL(SQL Server 使用的编程语言)中的值 null。由于 T-SQL 中使用了三重逻辑,熟悉 T-SQL 的开发人员可能关心可为 null 的类型在类似 if (a == a) 这样的表达式上的效果。如果您使用 truefalse,您就可以避免这类可能出现的混淆。

示例

下面的代码生成警告 CS1718。

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