Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 22710|Atbildi: 0

[Avots] Atšķirība starp struktūru un klasi C#

[Kopēt saiti]
Publicēts 24.06.2016 11:53:06 | | |
Būtiskākā atšķirība starp klasi un struktūru ir tā, ka klase ir atsauces tips, bet struct ir vērtību tips, un to sadalījums atmiņā ir atšķirīgs.

Kas ir klase?

Klase, objektorientētās programmēšanas pamatjēdziens, ir pielāgotas datu struktūras veids, kas parasti satur laukus, atribūtus, metodes, atribūtus, konstruktorus, indeksētājus, operatorus utt. .NET visas klases galu galā pārmanto no System.Object klases, tāpēc tās ir atsauces tips, tas ir, kad jūs jaunu klases instanci, šīs instances adrese pārvaldītajā kaudzē tiek glabāta stekā, un instances vērtība tiek saglabāta pārvaldītajā kaudzē.

Kas ir struktūra?

Struktūra ir vērtības tips, ko izmanto, lai organizētu saistīto mainīgo kopu vienā mainīgā entītijā. Visas struktūras tiek pārmantotas no System.ValueType klases, tāpēc tās ir vērtības tips, t.i., struct instance tiek izveidota stekā, kur ir piešķirts pavediens, un tā saglabā pašu vērtību. Tātad, izmantojot struct, mēs to varam uzskatīt par pamata tipa klasi, piemēram, int un char.



1. klase ir atsauces tips, un structs ir vērtības tips

Tā kā klase ir atsauces tips, klasi var iestatīt uz nulli. Bet mēs nevaram padarīt struct null, jo tas ir vērtības tips.




2. Kad jūs instancējat klasi, tā tiks izveidota kaudzē. Un jūs instancējat struktūru, kas tiks izveidota kaudzē

3. Jūs izmantojat atsauci uz klases instanci. Un jūs neizmantojat atsauci uz struktūru. (tā vietā izmantojiet tos tieši)

4. Kad mēs nododam klasi kā argumentu metodei, mēs nododam atsauci. struct nodod vērtību, nevis atsauci.

5. Struktūrām nevar būt inicializatori, klasēm var būt inicializatori.





6. Klasēm var būt acīmredzami konstruktori bez parametriem, bet Structs nevar





7. Jaunais atslēgvārds ir jāinstancē pirms klases izmantošanas, un Struct tas nav vajadzīgs




8. Klase atbalsta mantojumu un polimorfismu, Struct nav. Piezīme: Bet Struct var ieviest saskarnes tāpat kā klases

9. Tā kā Struct neatbalsta mantojumu, tās dalībniekus nevar mainīt ar aizsargātu vai aizsargātu iekšējo

10. Klases konstruktoram nav jāinicializē visi lauki, un Struct konstruktoram ir jāinicializē visi lauki







11. Klase var definēt destruktoru, bet Struct nevar

12. Klase ir piemērota lieliem un sarežģītiem datiem, un Struct ir piemērota jauniem tipiem, kurus bieži izmanto kā dažu datu kombināciju.



Piemērojamie gadījumi: Struct ir veiktspējas priekšrocības, un klasei ir objektorientētas paplašināšanas priekšrocības.

Pamatā esošajai datu krātuvei izmantotais tips ir veidots kā Struct tips, un tips, kas tiek izmantots, lai definētu lietojumprogrammas uzvedību, ir veidots kā klase. Ja neesat pārliecināts par šī tipa turpmāko pielietojumu, izmantojiet klasi.




Iepriekšējo:Alipay RSA privātā atslēga un publiskās atslēgas viena klikšķa ģenerēšanas rīks
Nākamo:C# apgrieziet MySQL palīdzības klasi, saglabājiet to
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com