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