CS1686 de erro do compilador

Mensagem de erro

Variável' local' ou seus membros não podem ter seus endereços obtidos nem serem usados dentro de um método anônimo ou lambda expressão

Este erro é gerado quando você usa uma variável e tenta obter seu endereço e uma destas ações é feita dentro de um método anônimo.

Exemplo

O exemplo a seguir gera 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
   }
}