aviso do compilador (nível 3) CS1718

Mensagem de erro

Comparação feita a mesma variável; você quis dizer comparar com outro nome?

Se você deve comparar com outra coisa, em seguida, você deverá corrigir simplesmente a demonstrativo.

Mas uma outra possibilidade é que foram testando para true ou false e estava fazendo isso por instruções, sistema autônomo if (a == a) (true) ou if (a < a) (false). É melhor simplesmente alegar if (true) ou if (false). Há dois motivos para isso:

  • É mais simples: é sempre mais clara simplesmente dizer o que significam.

  • Ele ajuda a evitar confusão: um novo recurso do translation from VPE for Csharp 2.0 é tipos de valor nulo, que são análogos ao valor null em T-SQL, a linguagem de programação usada pelo SQL servidor. sistema autônomo desenvolvedores familiarizados com o T-SQL podem se preocupar com o efeito de tipos anuláveis em expressões, sistema autônomo if (a == a), por causa do uso de lógica ternário em T-SQL. Se você usar true ou false, evitar essa confusão possível.

Exemplo

O código a seguir gera aviso CS1718.

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