Errore del compilatore CS1628

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile utilizzare il parametro ref o out 'parametro' all'interno di un metodo anonimo, un'espressione lambda o un'espressione di query
Cannot use ref or out parameter 'parameter' inside an anonymous method, lambda expression, or query expression

Questo errore si verifica quando si utilizza un parametro ref o out all'interno di un blocco di metodo anonimo. Per correggere l'errore, utilizzare una variabile locale o un altro costrutto.

Il seguente codice di esempio genera l'errore 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()
  {
     
  }
}