Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 22710|Odgovoriti: 0

[Vir] Razlika med strukturo in razredom v C#

[Kopiraj povezavo]
Objavljeno na 24. 06. 2016 11:53:06 | | |
Najpomembnejša razlika med razredom in strukturo je, da je razred referenčni tip, medtem ko je struct vrednostni tip, njihova razporeditev v pomnilniku pa je drugačna.

Kaj je razred?

razred, temeljni pojem v objektno usmerjenem programiranju, je vrsta prilagojene podatkovne strukture, ki običajno vsebuje polja, atribute, metode, atribute, konstruktorje, indeksatorje, operatorje itd. V .NET vsi razredi na koncu podedujejo razred System.Object, torej so referenčni tip, kar pomeni, da ko novo instanco razreda prejmete, se naslov te instance v upravljanem kupu shrani na sklad, vrednost primerka pa v upravljanem kupu.

Kaj je struktura?

Struktura je vrsta vrednosti, ki se uporablja za organizacijo niza povezanih spremenljivk v eno samo spremenljivko. Vse strukture so podedovane iz razreda System.ValueType, zato so vrsta vrednosti, tj. instanca strukture se ustvari na skladu, kjer je nit dodeljena, in sama shranjuje vrednost. Torej, ko uporabljamo strukturo, jo lahko obravnavamo kot osnovni razred tipov, kot sta int in char.



1. razred je referenčni tip, strukture pa vrednostni tip

Ker je razred referenčni tip, lahko razred nastavimo na null. Strukture pa ne moremo narediti ničle, ker je to tip vrednosti.




2. Ko instancirate razred, se ta ustvari na kupu. In ustvariš strukturo, ki se ustvari na skladu

3. Uporabljate referenco na instanco razreda. In ne uporabljate reference na konstrukcijo. (namesto tega jih uporabi neposredno)

4. Ko razred posredujemo kot argument metodi, posredujemo referenco. Struct posreduje vrednost, ne referenco.

5. Strukture ne morejo imeti inicializatorjev, razredi lahko imajo inicializatorje.





6. Razredi lahko imajo očitne konstruktorje brez parametrov, vendar Strukture ne morejo





7. Nova ključna beseda mora biti instancirana, preden se razred uporabi, in Struct je ne potrebuje




8. Razred podpira dedovanje in polimorfizem, Struct pa ne. Opomba: Vendar lahko Struct implementira vmesnike podobno kot razrede

9. Ker Struct ne podpira dedovanja, njegovih članov ni mogoče spreminjati z zaščitenim ali zaščitenim Internal

10. Konstruktor Class ne potrebuje inicializacije vseh polj, konstruktor Struct pa mora inicializirati vsa polja







11. Razred lahko definira uničevalca, vendar Struct ne more

12. Class je primeren za velike in kompleksne podatke, Struct pa za nove tipe, ki se pogosto uporabljajo kot kombinacija nekaterih podatkov.



Primeri: Struct ima prednosti v zmogljivosti, Class pa prednosti objektno usmerjene razširitve.

Tip, ki se uporablja za osnovno podatkovno shrambo, je zasnovan kot strukturni tip, tip, ki se uporablja za definiranje vedenja aplikacije, pa kot razred. Če niste prepričani glede prihodnje uporabe tega tipa, uporabite Class.




Prejšnji:Alipay RSA orodje za generiranje zasebnega ključa in javnega ključa z enim klikom
Naslednji:C# obrni MySQL razred pomoči, shrani ga
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com