This documentation is archived and is not being maintained.

Compiler Error CS1628 

Error Message

Cannot use ref or out parameter 'parameter' inside an anonymous method block

This error occurs if you use a ref or out parameter inside an anonymous method block. To avoid this error, use a local variable or some other construct.

The following sample generates 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()
  {
     
  }
}
Show: