Error del compilador CS1686

Actualización: noviembre 2007

Mensaje de error

No se puede obtener la dirección de la variable local 'variable' o de sus miembros ni utilizarse dentro de un método anónimo o una expresión lambda
Local 'variable' or its members cannot have their address taken and be used inside an anonymous method or lambda expression

Se genera este error cuando se utiliza una variable y se intenta obtener su dirección, pero una de estas acciones se efectúa en un método anónimo.

Ejemplo

El código siguiente genera el error CS1686.

// CS1686.cs
// compile with: /unsafe /target:library
class MyClass
{
   public unsafe delegate int * MyDelegate();

   public unsafe int * Test()
   {
      int j = 0;
      MyDelegate d = delegate { return &j; };   // CS1686
      return &j;   // OK
   }
}