Lire en anglais

Partager via


Erreur du compilateur CS8156

Impossible d'utiliser une expression dans ce contexte, car elle ne peut pas être passée ni retournée par référence

Exemple

L’exemple suivant génère l’erreur CS8156 :

// CS8156.cs (7,27)

class Test
{
    delegate ref int D1();

    void Test1()
    {
        D1 d1 = () => ref 2 + 2;
    }
}

Pour corriger cette erreur

Si vous n’utilisez pas de variables référençables, la refactorisation pour utiliser le retour par valeur corrige cette erreur :

class Test
{
    delegate int D1();

    void Test1()
    {
        D1 d1 = () => 2 + 2;
    }
}