Partager via


Erreur du compilateur CS1951

Mise à jour : novembre 2007

Message d'erreur

Une arborescence d'expression lambda ne peut pas contenir de paramètre out ou ref.
An expression tree lambda may not contain an out or ref parameter.

Une arborescence d'expression représente simplement des expressions sous la forme de structures de données. Aucune méthode ne permet de représenter des emplacements de mémoire spécifiques comme cela est requis lorsque vous passez un paramètre par référence.

Pour corriger cette erreur

  • La seule option consiste à supprimer le modificateur ref dans la définition de délégué et à passer le paramètre par valeur.

Exemple

L'exemple suivant génère 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
    }
}

Voir aussi

Concepts

Arborescences d'expression