Advertencia del compilador (nivel 3) CS1718
La comparación se ha hecho con la misma variable. ¿Quería comparar otro elemento?
Para realizar la comparación con otro elemento, solo tendría que corregir la instrucción.
Otra posibilidad sería que estuviese realizando pruebas de verdadero o falso con instrucciones como if (a == a) (true)
o if (a < a) (false)
. Es mejor usar if (true)
o if (false)
, por las dos razones siguientes:
Es más fácil: siempre resulta más claro decir sencillamente lo que se quiere decir.
Ayuda a evitar confusiones: una nueva característica de C# 2.0 son los tipos de valor que aceptan valores NULL, que son similares al valor
null
en T-SQL, el lenguaje de programación que se usa en SQL Server. Los programadores familiarizados con T-SQL podrían tener dudas sobre el efecto de los tipos de valores que aceptan valores NULL en expresiones comoif (a == a)
, debido al uso de la lógica ternaria en T-SQL. Si usatrue
ofalse
, evita esta posible confusión.
El código siguiente genera la advertencia CS1718.
// CS1718.cs
using System;
public class Tester
{
public static void Main()
{
int i = 0;
if (i == i) { // CS1718.cs
//if (true) {
i++;
}
}
}
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: