C# mi a különbség az auto tulajdonság és publikus memberek között?
Mikor használjam az auto propertyt tagváltozó helyett? Mert én úgy látom hogy az auto propertyt értelmetlen.
Jó magyarázatért cserébe zöld kezezek ha kell.
Mindig. Normál esetben soha nem akarsz publikus tagváltozókat.
Szemantikai különbség van, a property elrejti a megvalósítást, míg a tagváltozó nem.
Másrészt propertyknél getre és setre különböző hozzáférhetőséget beállítani.
Igen, a láthatóság egy jó indok. Pl ha azt szeretnéd, hogy velülről lehessen álltani az értékét, de kivülről ne, akkor:
public MyType MyProperty {get; private set;}
Egy másik indok az adatkötés. Adatkötni csak propertyhez tudod, fieldhez nem.
Szemantikai különbség van, a property elrejti a megvalósítást, míg a tagváltozó nem.
Ezt nem értem milyen megvalósítást rejt el?
Itt miről beszélsz?
Ezt sem értem
Normál esetben soha nem akarsz publikus tagváltozókat
Miért nem most miért jobb külön egy beálító és lekérdező függvényt írni feleslegesen?
Ellenőrzött hozzáférés. Ahogy írták, mi van, ha a propertyt kívülről olvashatónak akarod de csak belülről módosíthatónak? Mi van, ha ellenőrizni akarod, hogy megfelelő értékeket raksz-e bele? Mi van, ha ez, mi van, ha az.
Amúgy nem kell semmit írnod, erre van a megadható getter/setter. Egy privátan módosítható, publikusan olvasható property ennyi:
public PropName {get; private set;}
MEg van egy típusa is persze, csak az most épp lemaradt, legyen mondjuk int.
public int PropName {get; private set;}
Vagy ha egy abstract osztályba írom mondjuk ezt:
protected virtual int SzuperErő { get; set }
És a leszármazottakban pedig írok is a setterbe.
És abban az esetben ha nem használok interface ot és ha azt akarom,hogy a set is publikus legyen?
public MyType MyProperty {get; set;}
Ekkor használhatok membert e helyett?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!