Поделиться через


Ошибка компилятора CS1686

Обновлен: Ноябрь 2007

Сообщение об ошибке

Адреса локальной "переменной" или ее членов не могут получаться или использоваться внутри анонимного метода или лямбда-выражения
Local 'variable' or its members cannot have their address taken and be used inside an anonymous method or lambda expression

Эта ошибка генерируется, когда используется переменная и производится попытка получения ее адреса, причем одно из этих действий выполняется внутри анонимного метода.

Пример

Следующий пример приводит к возникновению ошибки 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
   }
}