Lire en anglais

Partager via


Erreur du compilateur CS8157

Impossible de retourner par référence, car il a été initialisé à une valeur qui ne peut pas être retournée par référence

Exemple

L’échantillon suivant génère l’avertissement CS8157 :

// CS8157.cs (8,21)

class C
{
    ref int M()
    {
        int x = 0;
        ref int rx = ref x;
        return ref (rx = ref (new int[1])[0]);
    }
}

Pour corriger cette erreur

Pour retourner une valeur qui ne peut pas être retournée par référence, la refactorisation pour un retour par valeur corrige cette erreur :

class C
{
    int M()
    {
        int x = 0;
        ref int rx = ref x;
        return rx = ref (new int[1])[0];
    }
}