Advertencia del compilador (nivel 3) CS1717

Actualización: noviembre 2007

Mensaje de error

Asignación a la misma variable. ¿Pretendía asignar otro elemento?
Assignment made to same variable; did you mean to assign something else?

Esta advertencia se produce cuando se asigna una variable a sí misma, como a = a.

Existen varios errores comunes que pueden generar esta advertencia:

  • Escribir a = a como condición de una instrucción if, como if (a = a). Es probable que lo que se quiera decir es if (a == a), que siempre es verdadero; en este caso resulta más conciso escribir if (true).

  • Error tipográfico. Es probable que lo que se quiera decir es a = b.

  • En un constructor donde el parámetro tiene el mismo nombre que el campo, no se ha utilizado la palabra clave this: es probable que se quiera decir this.a = a.

Ejemplo

El código siguiente genera la advertencia CS1717.

// CS1717.cs
// compile with: /W:3
public class Test
{
   public static void Main()
   {
      int x = 0;
      x = x;   // CS1717
   }
}