Kezdőoldal » Számítástechnika » Programozás » C#-ba get set metódusoknak...

C#-ba get set metódusoknak vki leírni mi a lényege?

Figyelt kérdés

annyi okés h vannak objektumok, és konstruktorokkal lehet beállítani az "értékét" (hát lehet most rosszul fogalmazok, akkor elnézést). A get set metódust pontosan nem értem, az okés h itt deklarálom le és tárolom egy memoriában az adataimat, de pl most C# ba néztem h igazából ha kijelölöm a változóm nevét, és rámegyek jobb gombbal "Refactor"-ra akkor nem jelenik meg az "Encapsulate Field" se. (ezt h tudom előhozni? 2012 Exprest használok)


Azt is tudom (lehet rosszul) h metodusok (függvényeket) helyettesítenek, visszatérési értékkel. Előre is köszönöm aki tud kicsit segíteni, és tud pontosabb infokkal szolgálni a témában. minden kis info jól jönne most :)


Köszönöm előre aki tud segíteni ! :)



2014. ápr. 8. 12:54
 1/8 anonim ***** válasza:
Általában azért hasznosak az ilyen get/set metódusok, mert így kívülről nem lehet közvetlenül olvasni vagy módosítani az adott tulajdonságot (tagváltozót), csak a metódusokon keresztül. Így megteheted, hogy íráskor (set) ellenőrzöd, hogy mit is akarnak beleírni. Ha nem jó, visszautasítod. Vagy olvasásnál (get) át tudod alakítani olyan formára, amilyenre akarod. Pl. ha mondjuk egy színt tárolsz az RGB összetevők alapján, megteheted, hogy a get metódus egy 24 bites értéket adjon vissza, és ne egy három byte-ból álló struktúrát, ahogy tárolva van.
2014. ápr. 8. 13:59
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:

A set metódusok azért jöttek létre, hogy egy osztálynak a private adattagjait lehessen velük változtatgatni.

A szetter azért jó, hogy meg tud határozni, hogy az osztályod egyik változója milyen értékeket fogadhasson.


pl.: van egy private int eletkor;

Ezt nem tudod állítgatni sehogy csak akkor ha az osztálynak meghívod a setEletkor(int beallitandoEletkor) metódusát, ami nem fut le ha pl a delikvens 0-t akarja megadni életkornak.


Viszont ha van egy public int eletkor;

akkor azt a kódban bárhol ellenőrzések nélkül állítgathatják... (biztonsági rés)


A get pedig azért jó, hogy a privát adattagokat is elérhesd más osztályokban ha szükséges

2014. ápr. 8. 14:03
Hasznos számodra ez a válasz?
 3/8 A kérdező kommentje:
és ezt az Encapsulate Field - et, h tom használni?
2014. ápr. 8. 15:50
 4/8 anonim ***** válasza:

Innen lestem:

[link]


Szóval egy tagváltozóra ha ezt megcsinálod, akkor ahhoz a változóhoz létrehoz egy-egy get/set metódust, és a kód többi részében (az osztályon kívül) lévő hivatkozásokat is lecseréli a get/set metódusok nevére.

2014. ápr. 8. 15:57
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:
Nem jelenik meg ilyen opció, "On the Refactor menu, click Encapsulate Field." Videóból is lelestem, vmit vagy állítani kell hozzá, vagy vmit nem jól csinálok kódban, nem tudom.
2014. ápr. 8. 16:36
 6/8 anonim ***** válasza:
Konkrétan a változó neve fölé kell állni az egérrel.
2014. ápr. 8. 16:39
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:
(Egy videóból nézve) kijelöli, és úgy megy rá jobb gombbal és úgy megjelenik neki... Kattintgatok én fölé is, de hiába :D
2014. ápr. 8. 16:47
 8/8 anonim ***** válasza:
ctrl + r, ctrl + e
2016. nov. 8. 13:36
Hasznos számodra ez a válasz?

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!