Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 22710|Válasz: 0

[Forrás] A szerkezet és az osztály közötti különbség a C#-ban

[Linket másol]
Közzétéve 2016. 06. 24. 11:53:06 | | |
A legfontosabb különbség az osztály és a struktur között, hogy az osztály referenciatípus, míg a strukturált értéktípus, és a memóriában eloszlásuk eltérő.

Mi az az osztály?

Az osztály, amely az objektumorientált programozás alapvető fogalma, egy egyedi adatszerkezet, amely általában mezőket, attribútumokat, metódusokat, attribútumokat, konstruktorokat, indexelőket, operátorokat stb. tartalmaz. A .NET-ben minden osztály végül a System.Object osztályból örököl, tehát referenciatípus, vagyis amikor új példányt adsz egy osztályból, az adott példány címe a kezelt halomban tárolódik a veremben, és az érték a kezelt halomban van.

Mi az a szerkezet?

A szerkezet egy értéktípus, amelyet egy kapcsolódó változóhalmazba szerveznek egyetlen változós entitásba. Minden struktúra a System.ValueType osztályból örököl, így értéktípus, vagyis a szerkezeti példány azon a veremben jön létre, ahol a szál van hozzárendelve, és maga az érték tárolja. Tehát struct használatakor kezelhetjük alap típusosztályként, mint például int és char.



1. az osztály a referenciatípus, a szerkezetek pedig az értéktípus

Mivel az osztály referenciatípus, az osztály nullra állítható. De nem tehetjük a structot nullná, mert értéktípus.




2. Amikor egy osztályt instanciálsz, az a halmazon jön létre. És létrehozol egy structuszt, amit a stacken hoznak létre

3. Egy osztálypéldányra hivatkozva használsz. És nem használsz egy szerkezetre utalást. (inkább közvetlenül használd őket)

4. Amikor az osztályt egy metódus érveként adjuk át, akkor utalást adunk. A struct értéket ad át, nem referenciaként.

5. A szerkezeteknek nem lehetnek inicializálók, az osztályoknak is lehetnek inicializátorok.





6. Az osztályoknak lehetnek nyilvánvaló paraméter nélküli konstruktorok, de a szerkezeteknek nem





7. Az új kulcsszót meg kell instanálni, mielőtt az osztályt használnánk, és a Structnek nincs rá szüksége




8. Az osztály támogatja az öröklődést és a polimorfizmust, a Struct nem. Megjegyzés: De a Struct képes interfészeket is megvalósítani, akárcsak az osztályokat

9. Mivel a Struct nem támogatja az öröklést is, tagjai nem módosíthatók védett vagy védett belső funkcióval

10. Az osztály konstruktorának nem kell minden mezőt inicializálnia, és a Struct konstruktorának minden mezőt inicializálnia kell







11. Az osztály definiálhatja a pusztítót, de a szerkezet nem

12. Az osztály alkalmas nagy és összetett adatokhoz, míg a Struct új típusokhoz, amelyeket gyakran egyes adatok kombinációjaként használnak.



Alkalmazható alkalmak: A szerkezetnek teljesítményelőnyei vannak, a Classnak pedig objektumorientált kiterjesztési előnyei.

Az alapul szolgáló adattároló típusa Struct típusként van tervezve, az alkalmazás viselkedésének meghatározásához használt típus pedig osztályként van tervezve. Ha nem vagy biztos a típus jövőbeli alkalmazásában, használd a Class-t.




Előző:Alipay RSA privát kulcs és nyilvános kulcs egy kattintásos generáló eszköz
Következő:C# fordítsd vissza a MySQL help class-t, mentsd
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com