Mi a különbség az érték szerinti és a hivatkozás (aka. cím) szerinti paraméterátadás között?










Az egyiknél másolat keletkezik, a másiknál az eredeti objektumra hivatkozol.
C#-ban majdnem minden referencia alapba.





"Az egyiknél másolat keletkezik, a másiknál az eredeti objektumra hivatkozol."
Kivéve, hogy ez egyáltalán nem igaz.
C#-ban alapból érték szerinti paraméterátadás van.
Struct-ok másolódnak, classok viszont egyáltalán nem, csupán a referenciából jön létre új.
Hatalmas a különbség a kettő között.





"C#-ban alapból érték szerinti paraméterátadás van.
Struct-ok másolódnak, classok viszont egyáltalán nem, csupán a referenciából jön létre új."
Abban igazad van, hogy C#-pban vannak ún. value-type-ok (mint pl. a struct) és a reference-type-ok (mint pl. a class). De ennek nagyjából semmi köze nincs a paraméterátadási módokhoz. C#-pban háromféle paraméterátadás van:
- érték szerinti (ezt nem jelöljük)
- cím szerinti (ref kulcsszóval jelöljük)
- eredmény szerinti (out kulcsszóval jelöljük)
Szóval nem számít, hogy class-ról vagy struct-ról van-e szó, ha nem jelölted a paraméterátadási módot, akkor érték szerint adódik át.





"Szóval nem számít, hogy class-ról vagy struct-ról van-e szó, ha nem jelölted a paraméterátadási módot, akkor érték szerint adódik át."
Mármint a referencia a class-ra.
Merthogy egy class sohasem fog másolódni és új objektum létrejönni.





Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!