Läs på engelska

Dela via


Kompilatorfel CS8158

Det går inte att returnera en medlem som referens eftersom den initierades till ett värde som inte kan returneras med referens

Exempel

Följande exempel genererar CS8158:

// CS8158.cs (11,14)

public class Test
{
    public struct S1
    {
        public char x;
    }

    ref char Test1(char arg1, S1 arg2)
    {
        ref S1 r = ref arg2;
        return ref r.x;
    }
}

Så här åtgärdar du det här felet

Om du vill returnera medlemmar som initierats till ett värde som inte kan returneras med referens korrigerar refaktorisering för att returnera med värde det här felet:

    char Test1(char arg1, S1 arg2)
    {
        ref S1 r = ref arg2;
        return r.x;
    }