Kezdőoldal » Számítástechnika » Programozás » C# mi a különbség az auto...

C# mi a különbség az auto tulajdonság és publikus memberek között?

Figyelt kérdés

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.


2016. nov. 23. 16:15
 1/10 anonim ***** válasza:

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.

2016. nov. 23. 18:27
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:

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.

2016. nov. 23. 18:45
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:

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?

2016. nov. 23. 19:19
 4/10 A kérdező kommentje:

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?

2016. nov. 23. 19:23
 5/10 anonim ***** válasza:

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;}

2016. nov. 23. 19:38
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:

MEg van egy típusa is persze, csak az most épp lemaradt, legyen mondjuk int.

public int PropName {get; private set;}

2016. nov. 23. 19:39
Hasznos számodra ez a válasz?
 7/10 A kérdező kommentje:

Vagy ha egy abstract osztályba írom mondjuk ezt:

protected virtual int SzuperErő { get; set }


És a leszármazottakban pedig írok is a setterbe.

2016. nov. 23. 19:57
 8/10 anonim ***** válasza:
Ez is megvalósítható, de hogy jön ide?
2016. nov. 23. 20:06
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:
#2-es vagyok... ja igen, propertyt rakhatsz interface-be is.
2016. nov. 23. 22:26
Hasznos számodra ez a válasz?
 10/10 A kérdező kommentje:

É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?

2016. nov. 23. 23:09

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!