Freigeben über


Compilerwarnung (Stufe 3) CS1718

Der Vergleich erfolgte mit der gleichen Variablen. Wollten Sie etwas anderes vergleichen?

Wenn Sie etwas anderes vergleichen wollten, korrigieren Sie die Anweisung entsprechend.

Eine andere Möglichkeit ist, dass Sie "True" oder "False" testen und dazu Anweisungen wie if (a == a) (true) oder if (a < a) (false)verwendet haben. Aus den folgenden beiden Gründen ist es besser, if (true) oder if (false) zu verwenden:

  • Es ist einfacher: Einfach zu sagen, was Sie meinen, bringt immer größere Klarheit.

  • Verwirrung wird vermieden: Ein neues Feature von C# 2.0 sind Werttypen, die auf NULL festgelegt werden können, analog zum Wert null in T-SQL, die von SQL Server verwendete Programmiersprache. Mit T-SQL vertraute Entwickler machen sich möglicherweise Gedanken über die Auswirkungen Nullwerte zulassender Typen auf Ausdrücke wie if (a == a), da in T-SQL die ternäre Logik Verwendung findet. Bei Verwendung von true oder falsevermeiden Sie mögliche Verwirrungen.

Beispiel

Mit dem folgenden Code wird die Warnung CS1718 generiert.

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