编译器错误 CS1686

更新:2007 年 11 月

错误消息

在匿名方法块或 lambda 表达式的内部不能获取局部变量“variable”或其成员的地址,也不能使用局部变量“variable”或其成员

当您使用某个变量并尝试获取其地址时,只要这些操作有一项是在匿名方法内部执行的,就会生成此错误。

示例

下面的示例生成 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
   }
}