Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 22710|Répondre: 0

[Source] La différence entre la structure et la classe en C#

[Copié le lien]
Publié sur 24/06/2016 11:53:06 | | |
La différence la plus essentielle entre class et struct est que class est un type de référence, tandis que struct est un type de valeur, et leur allocation en mémoire est différente.

Qu’est-ce que la classe ?

La classe, un concept fondamental en programmation orientée objet, est un type de structure de données personnalisée qui contient typiquement des champs, attributs, méthodes, attributs, constructeurs, indexeurs, opérateurs, etc. Dans .NET, toutes les classes héritent finalement de la classe System.Object, donc elles sont un type de référence, c’est-à-dire que lorsque vous avez une instance d’une classe, l’adresse de cette instance dans le tas géré est stockée sur la pile, et la valeur de l’instance est stockée dans le tas géré.

Qu’est-ce qu’un struct ?

Une structure est un type de valeur utilisé pour organiser un ensemble de variables apparentées en une seule entité variable. Toutes les structures sont héritées de la classe System.ValueType, donc elles sont un type de valeur, c’est-à-dire que l’instance struct est créée sur la pile où le thread est assigné, et elle stocke la valeur elle-même. Ainsi, lorsqu’on utilise struct, on peut le considérer comme une classe de type de base telle que int et char.



1. la classe est le type de référence, et les structs est le type de valeur

Puisque la classe est un type de référence, la classe peut être réglée sur nulle. Mais on ne peut pas rendre struct nul car c’est un type de valeur.




2. Lorsque vous instanciez une classe, elle sera créée sur le tas. Et vous instanciez une struct, qui sera créée sur la pile

3. Vous utilisez une référence à une instance de classe. Et vous n’utilisez pas une référence à une struct. (utilisez-les plutôt directement)

4. Lorsque nous faisons passer une classe comme argument à une méthode, nous passons une référence. Struct transmet une valeur, pas une référence.

5. Les structs ne peuvent pas avoir d’initialiseurs, les classes peuvent en avoir.





6. Les classes peuvent avoir des constructeurs sans paramètres évidents, mais les Structs ne peuvent pas





7. Le nouveau mot-clé doit être instancié avant que la classe ne soit utilisée, et la Struct n’en a pas besoin




8. La classe supporte l’héritage et le polymorphisme, Struct ne le fait pas. Note : Mais Struct peut implémenter des interfaces tout comme des classes

9. Puisque Struct ne supporte pas l’héritage, ses membres ne peuvent pas être modifiés avec un système interne protégé ou protégé

10. Le constructeur de Class n’a pas besoin d’initialiser tous les champs, et le constructeur de Struct doit initialiser tous les champs







11. La classe peut définir un destructeur, mais Struct ne peut pas

12. La classe convient aux données volumineuses et complexes, et Struct convient aux nouveaux types souvent utilisés comme combinaison de certaines données.



Occasions applicables : Struct présente des avantages en termes de performance, et Class offre des avantages d’extension orientée objet.

Le type utilisé pour le stockage de données sous-jacent est conçu comme un type Struct, et le type utilisé pour définir le comportement de l’application est conçu comme une Classe. Si vous n’êtes pas sûr de l’application future de ce type, vous devriez utiliser Class.




Précédent:Outil de génération de clés privées et publiques d’un clic Alipay RSA
Prochain:C# inverse une classe d’aide MySQL, enregistrez-la
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com