Ler em inglês

Compartilhar via


Aviso do compilador (nível 3) CS1718

Comparação feita com a mesma variável; você queria comparar outra coisa?

Se você pretende comparar com outra coisa, corrija a instrução.

Mas outra possibilidade é que você estava testando para verdadeiro ou falso, e estavam fazendo isso com instruções como if (a == a) (true) ou if (a < a) (false). É melhor usar if (true) ou if (false), pelos dois motivos a seguir:

  • É mais simples: é sempre mais claro simplesmente dizer o que você quer dizer.

  • Ele ajuda a evitar confusões: novos recursos do C# 2.0 são os tipos de valor anuláveis, que são análogos ao valor null no T-SQL, a linguagem de programação usada por SQL Server. Os desenvolvedores familiarizados com o T-SQL podem estar preocupados com o efeito de tipos de valor anuláveis em expressões como if (a == a), devido ao uso da lógica ternária no T-SQL. Se usar true ou false, você evitará essa possível confusão.

Exemplo

O código a seguir gera o aviso CS1718.

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