Kezdőoldal » Számítástechnika » Programozás » C# Mi a különbség, amikor egy...

C# Mi a különbség, amikor egy struktúra típusú listát csinálok vagy amikor egy classben olyan getter-settereket és utána a class nevét adom meg mint típus?

Figyelt kérdés

2015. máj. 9. 14:25
1 2
 1/11 anonim ***** válasza:
Nem nagyon látom az összefüggést a mondat két fele között.
2015. máj. 9. 14:41
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:
hogy az egyik egy lista ami struktúrákat tárol, a másik meg egy osztály
2015. máj. 9. 16:38
Hasznos számodra ez a válasz?
 3/11 A kérdező kommentje:
Csinálok egy listát,aminek az elemei struktúra tipusúak.Vagy csinálok egy listát,aminek a típusának a helyére egy olyan osztálynak a nevét adom meg amiben getter-setterek vannak.Főleg ezt a másodikat nem értem. Hogylehet egyáltalán egy lista típusa osztály?
2015. máj. 9. 17:00
 4/11 anonim ***** válasza:

Tekintve, hogy a C# objektumorientált, nem nagyon értem mi meglepő van benne, vagy hogy mitől másabb, mintha struktúra lenne, tekintve, hogy nagy különbség nincsen ilyen szempontból.

Másrészt meg a getter/setter sem értem, hogy jön ide.

2015. máj. 9. 18:26
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:
ahha asszem megvan mi a te problémád. azért jobb osztályt rakni listába aminek vannak getter setterjei (propertyk mégjobbak amúgy) mert közvetlenül nem lehet módosítani a mezőket, mert egy struktúrába tulajdonképpen minden public, simán módosíthatod, míg az osztályban csak a .get .set fügvénnyel módosíthatód stb.
2015. máj. 9. 18:45
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:

De ennek meg a listába rakáshoz semmi köze...

Ki érti ezt...

2015. máj. 9. 19:08
Hasznos számodra ez a válasz?
 7/11 A kérdező kommentje:
És ha a propertykből több listát csinálok és abban modositok valamit az minden listában modósul,míg ha strúktúrákban vannak a dolgok akkor nem modosul mindenhol?
2015. máj. 9. 19:59
 8/11 anonim ***** válasza:

Propertykből nem csinálsz listát.

Nem tudnád értelmesen megfogalmazni mit akarsz kérdezni?

Arra vagy kíváncsi, hogy mi az érték meg a referencia típusok között?

2015. máj. 9. 20:14
Hasznos számodra ez a válasz?
 9/11 Piert ***** válasza:

Hogy tisztázzuk, a class minden esetben referencia szerint kezelődik a c#-ban ( és default private a láthatósága). Ezzel szemben a struktúra egy "lebutított osztály", melynek példányai érték szerint adódnak át ( és by default public ). Természetesen mindkét szerkezet tartalmazhat adattagokat melyeknek az alapértelmezettől eltérő láthatóságot is adhatsz.

A get-set blokk annyiban könnyíti meg az életedet ( főleg a java programozókkal szemben), hogy a lekérdező és az értékadó műveleteket közvetlenül az adattaghoz rendelheted. Természetesen ezeknek is lehet saját láthatóságuk, sőt a megvalósításuk se kötelező ( public adattag esetén a fordító implicit generál egy alapértelmezett get-set blokkot, valahogy így: var v{get;set;}). Az persze megint más kérdés, hogy mit szeretnél te ezzel, mert az nem befolyásolja azt, hogy egy generikus konténert te milyen típussal típusozol fel. Alapértelmezetten az Object valamely leszármazottja lehet egy generikus tároló típusa, de ezt ha szükséges le tudod szűkíteni. Erre van a where ksz. Ha érdekel, olvass utána.

2015. máj. 10. 11:17
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:
Huha,holnap lesz az érettségi és igen ez lett volna a kérdésem.Tehát azt értem,hogy a struktúra hasonló mint egy változó,de a class referencia tehát ha abból csinálok listát(többet) és az egyikben modositok,akkor az az osszesben modosul nem?És még azt nem ertem,hogy tudom a classt ugy hasznalni mint egy struct?
2015. máj. 11. 22:20
1 2

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!