Error del compilador · error CS1002
Se esperaba ;
Una instrucción no terminó donde el compilador esperaba. Es el error más común de C# — y tiene la propiedad más útil de todas: el fallo real suele estar en la línea anterior a la que señala el error.
Míralo ocurrir
int x = 5
Console.WriteLine(x);
Lee el error con atención: señala la línea 2 — pero el punto y coma que falta está al final de la línea 1. El compilador solo descubre el problema cuando ve Console donde debería haber un ;, un operador o una }. De ahí la regla para cazar CS1002:
Ve a la línea señalada y mira el final de la línea de arriba.
int x = 5;
Console.WriteLine(x);
¿Qué lleva punto y coma?
Las instrucciones terminan en ;. Los bloques — lo que va entre { … } — no. Esa es toda la regla:
int total = 0; // instrucción de declaración → ;
for (int i = 1; i <= 3; i++) // for(...) en sí → no
{
total += i; // dentro del bloque → cada instrucción lleva ;
} // llave de cierre → no
if (total > 2) // no
{
total++; // sí ;
} // no
Console.WriteLine(total); // sí ;
Los disparadores clásicos
1. return a medio escribir
int Add(int a, int b)
{
return a + b // olvidaste el ; tras el valor de retorno
}
Console.WriteLine(Add(1, 2));
2. Llamada a método en su propia línea
Console.WriteLine("funcionando…")
Console.WriteLine("nunca se alcanza");
3. La cascada — un ; perdido produce cinco errores
Sin el ;, el compilador pega la línea 1 y la 2 en una expresión absurda y señala el primer punto donde se pierde. Corrige el PRIMER error, recompila, y los demás suelen evaporarse. Los principiantes corrigen el último error primero; el compilador lee de arriba abajo, y tú deberías también.
El primo: CS1513 (se esperaba })
El hermano del punto y coma perdido es la llave perdida. Misma técnica de búsqueda, girada: el error señala la línea donde el compilador se quedó sin código — cuenta las llaves hacia atrás desde ahí.
Preguntas frecuentes
¿Cómo corrijo el error CS1002 en C#?
Una instrucción no terminó donde se esperaba. El fallo real suele estar al final de la línea anterior: añade el ; allí. Declaraciones, asignaciones, return, break, continue y llamadas llevan ; las cabeceras if/for/while y las llaves de cierre no.
¿Por qué CS1002 señala la línea equivocada?
Sin el ;, el compilador pega dos líneas en una expresión y se atraganta una línea después del fallo real. Por eso un ; perdido genera cascadas: corrige el primero y recompila.
Lista de comprobación
- Error en la línea N → revisa primero el final de la línea N−1.
- Cada declaración, asignación,
return,break,continuey llamada suelta lleva;. - Las cabeceras
if/for/while/switchy las}de cierre nunca. - ¿Muchos errores a la vez? Corrige el primero y recompila — la cascada se derrumba.