Error del compilador · error CS1525

Término de expresión 'X' no válido

El compilador estaba leyendo una expresión — un lugar donde debe aparecer un valor — y se topó con puntuación. El hueco que debía contener un valor está vacío.

Míralo ocurrir

int x = ;   // el lado derecho de = debe ser un valor

Forma 1: un inicializador vacío

string nombre = ;
string nombre = "(sin nombre)";
Console.WriteLine(nombre);

Forma 2: un operador colgando

Un operador sin nada sobre lo que operar es el mismo problema — necesita un operando:

int total = 10 + ;   // + necesita un valor a la derecha
int total = 10 + 5;
Console.WriteLine(total);

Forma 3: paréntesis vacíos

bool listo = true;
if ()
{
    Console.WriteLine("vamos");
}
bool listo = true;
if (listo)              // if necesita una expresión bool dentro de los paréntesis
{
    Console.WriteLine("vamos");
}

Forma 4: dos operadores seguidos

int a = 5;
int b = a * * 3;   // entre dos operadores debe haber un valor
int a = 5;
int b = a * 3;   // un operador, un valor a cada lado
Console.WriteLine(b);

Forma 5: cascada de un paréntesis sin cerrar

Si en la línea señalada no hay nada raro, mira la de arriba — un ( o [ sin cerrar hace que el compilador siga leyendo tu siguiente línea y falle donde menos lo esperas. La solución real suele estar un carácter antes.

Preguntas frecuentes

¿Qué significa CS1525?

El compilador esperaba un valor y encontró puntuación o nada. Proporciona la expresión que falta, quita el operador sobrante o completa el argumento.

¿Puede ser una cascada?

Sí — un paréntesis o corchete sin cerrar en la línea anterior lo provoca más abajo. Revisa el token anterior a la posición señalada.

Lista de comprobación