CS1628 de erro do compilador

Mensagem de erro

Não é possível usar ref ou out 'parameter' dentro de um método anônimo, expressão lambda ou expressão de consulta de parâmetro

Este erro ocorre se você usa um ref ou out parâmetro dentro de um método anônimo bloco.Para evitar esse erro, use uma variável local ou alguma Outros construção.

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