Sobes.tech
Junior — Middle

Válik referencia típussá a szerkezet a ref vagy out kulcsszavak használatakor a módszerekben?

sobes.tech MI

Válasz az MI-től

A C#-ban a struktúra (struct) mindig érték típus marad, még akkor is, ha ref vagy out kulcsszavakkal adja át egy metódusnak. Ezek a kulcsszavak lehetővé teszik, hogy a struktúra változójára hivatkozást adjunk át, azaz a metódus módosíthatja a struktúrát maga, nem csak annak másolatát, de az adattípus nem válik referencia típussá.

Példa:

struct Point { public int X, Y; }

void UpdatePoint(ref Point p) {
    p.X = 10;
    p.Y = 20;
}

Point pt = new Point();
UpdatePoint(ref pt); // pt módosul

Itt a Point érték típus marad, de a ref-nek köszönhetően a metódus hozzáfér az eredeti példányhoz, nem a másolatához.