Lire en anglais

Partager via


Avertissement du compilateur (niveau 3) CS1718

Comparaison effectuée avec la même variable ; souhaitiez-vous comparer autre chose ?

Si vous vouliez effectuer un comparaison avec autre chose, corrigez l’instruction.

Mais il est également possible que vous vouliez tester les valeurs true et false à l’aide d’instructions telles que if (a == a) (true) ou if (a < a) (false). Il est préférable d’utiliser if (true) ou if (false), pour les deux raisons suivantes :

  • C’est plus simple : pour être clair, il vaut mieux rester simple.

  • Cela permet d’éviter toute confusion : les types valeur Nullable sont une nouveauté de C# 2.0 et sont similaires à la valeur null de T-SQL, le langage de programmation utilisé par SQL Server. Les développeurs qui connaissent T-SQL peuvent s’inquiéter de l’effet des types de valeur Nullable dans des expressions telles que if (a == a), car cela implique l’utilisation de la logique ternaire dans T-SQL. Si vous utilisez true ou false, vous évitez toute confusion.

Exemple

Le code suivant génère l’avertissement CS1718.

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