Errore del compilatore CS1951

Aggiornamento: novembre 2007

Messaggio di errore

Un'espressione lambda della struttura ad albero dell'espressione non può contenere un parametro out o ref.
An expression tree lambda may not contain an out or ref parameter.

Una struttura ad albero dell'espressione rappresenta le espressioni come strutture di dati. Non è possibile rappresentare posizioni di memoria specifiche come richiesto quando si passa un parametro per riferimento.

Per correggere l'errore

  • L'unica opzione è rimuovere il modificatore ref nella definizione di delegato e passare il parametro per valore.

Esempio

Nell'esempio seguente viene generato l'errore CS1951:

// cs1951.cs
using System.Linq;
public delegate int TestDelegate(ref int i);
class Test
{
    static void Main()
    {
        System.Linq.Expressions.Expression<TestDelegate> tree1 = (ref int x) => x; // CS1951
    }
}

Vedere anche

Concetti

Strutture ad albero dell'espressione