Errore del compilatore CS1686

Aggiornamento: novembre 2007

Messaggio di errore

L'indirizzo della 'variabile' locale o dei relativi membri non può essere accettato e utilizzato in un metodo anonimo o in un'espressione lambda
Local 'variable' or its members cannot have their address taken and be used inside an anonymous method or lambda expression

Questo errore si verifica quando, durante l'utilizzo di una variabile e il tentativo di ottenerne l'indirizzo, una di queste operazioni viene eseguita all'interno di un metodo anonimo.

Esempio

Il seguente codice di esempio genera l'errore 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
   }
}