Ostrzeżenie kompilatora (poziom 3) CS1718
Porównanie z tą samą zmienną; czy chodziło ci o porównanie czegoś innego?
Jeśli chcesz porównać coś innego, popraw instrukcję .
Ale inną możliwością jest to, że testowano pod kątem wartości true lub false i robiliśmy to za pomocą instrukcji, takich jak if (a == a) (true)
lub if (a < a) (false)
. Lepiej użyć if (true)
metody lub if (false)
, z następujących dwóch powodów:
To prostsze: zawsze jest jaśniejsze po prostu powiedzieć, co masz na myśli.
Pomaga uniknąć nieporozumień: nowa funkcja języka C# 2.0 to typy wartości dopuszczających wartość null, które są analogiczne do wartości
null
w języku T-SQL, języku programowania używanym przez program SQL Server. Deweloperzy zaznajomieni z językiem T-SQL mogą obawiać się wpływu typów wartości dopuszczanych do wartości null w wyrażeniach, takich jakif (a == a)
, ze względu na użycie logikiternarnej w języku T-SQL. Jeśli używasztrue
polecenia lubfalse
, unikaj tego możliwego pomylenia.
Poniższy kod generuje ostrzeżenie CS1718.
// CS1718.cs
using System;
public class Tester
{
public static void Main()
{
int i = 0;
if (i == i) { // CS1718.cs
//if (true) {
i++;
}
}
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: