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


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

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

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

Невозможно использовать параметр "ref" или "out" "параметр" внутри анонимного метода, лямбда-выражения или выражения запроса
Cannot use ref or out parameter 'parameter' inside an anonymous method, lambda expression, or query expression

Эта ошибка возникает при использовании параметра "ref" или "out" внутри блока анонимного метода. Чтобы избежать этой ошибки, используйте локальную переменную или другую конструкцию.

Следующий пример приводит к возникновению ошибки CS1628:

// CS1628.cs

delegate int MyDelegate();

class C
{
  public static void F(ref int i)
  {
      MyDelegate d = delegate { return i; };  // CS1628
      // Try this instead:
      // int tmp = i;
      // MyDelegate d = delegate { return tmp; };
  }

  public static void Main()
  {
     
  }
}