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.