CS8157-ös fordítási hiba

Nem lehet hivatkozással visszaadni, mert olyan értékre inicializálták, amely hivatkozással nem adható vissza

Példa

Az alábbi minta a CS8157-et hozza létre:

// 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]);
    }
}

A hiba kijavítása

Ha hivatkozással nem visszaadható értéket szeretne visszaadni, az érték szerinti újrabontás a következő hibát javítja ki:

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