Číst v angličtině

Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 3) CS1718

Porovnání provedené se stejnou proměnnou; Chtěl jsi porovnat něco jiného?

Pokud jste chtěli porovnat s něčím jiným, opravte příkaz.

Ale další možností je, že jste testovali pravdivý nebo nepravdivý, a prováděli jste to příkazy, jako if (a == a) (true) jsou nebo if (a < a) (false). Je lepší použít if (true) nebo if (false), z následujících dvou důvodů:

  • Je jednodušší: vždy je jasnější jednoduše říct, co myslíte.

  • Pomáhá vyhnout se nejasnostem: nová funkce jazyka C# 2.0 je typy hodnot null, které jsou analogické s hodnotou null v jazyce T-SQL, programovacím jazykem používaným SQL Serverem. Vývojáři, kteří jsou obeznámeni s T-SQL, se můžou zabývat účinkem typů hodnot s možnou hodnotou null na výrazy, jako if (a == a)je použití ternární logiky v T-SQL. Pokud používáte true nebo false, zabráníte tomu, aby se toto možné nejasnosti.

Příklad

Následující kód vygeneruje upozornění CS1718.

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