Error del compilador CS1632

Actualización: noviembre 2007

Mensaje de error

El control no puede abandonar el cuerpo de un método anónimo o de una expresión lambda
Control cannot leave the body of an anonymous method or lambda expression

Este error aparece si una instrucción de salto (break, goto, continue, etc.) intenta trasladar el control fuera de un bloque de métodos anónimos. Un bloque de métodos anónimos es un cuerpo de función y sólo se puede salir del mismo por medio de una instrucción return o llegando al fin del bloque.

En el código siguiente se genera el error CS1632:

// CS1632.cs
// compile with: /target:library
delegate void MyDelegate();
class MyClass
{
   public void Test()
   {      
      for (int i = 0 ; i < 5 ; i++)
      {
         MyDelegate d = delegate {
            break;   // CS1632
          };        
      }
   }
}