Les classes et les structures sont les deux constructions de base du même type de système dans le .NET Framework. Les deux sont essentiellement des structures de données qui encapsulent un ensemble de données et de comportements sous forme d’unité logique. Les données et le comportement sont des « membres » de la classe ou de la structure et contiennent leurs propres méthodes, propriétés, événements, etc.
Structure
La structure est le mécanisme le plus couramment utilisé par les programmeurs C# pour définir leurs propres types de valeur. La structure est plus puissante que l'énumération car elle fournit des méthodes, des champs, des opérateurs et un contrôle d'accès, etc.
Les structures sont très similaires aux classes, toutes deux représentent des structures de données qui peuvent contenir des données membres et des fonctions membres. Cependant, contrairement aux classes, les structures sont un type valeur et ne nécessitent pas d'allocation de tas. Les variables de type structure contiennent directement les données de la structure, tandis que les variables de type classe contiennent uniquement une référence aux données correspondantes (les données référencées sont appelées un « objet »). La structure
est particulièrement utile pour les petites structures de données avec une sémantique de valeur. Les nombres complexes, les points dans un système de coordonnées ou les paires clé-valeur dans un dictionnaire sont tous des exemples typiques de structures. L'essentiel de ces structures de données est qu'elles ne comportent qu'un petit nombre de données membres, ne nécessitent pas l'utilisation d'identificateurs d'héritage ou de référence et sont plus faciles à utiliser (lors de l'affectation, vous copiez la valeur directement au lieu de copier sa référence. ).
L'instruction de la structure est implémentée par le mot-clé Struct Le format de l'instruction est :
Le nom de la structure de décoration Struct
{
Le corps de la structure }; La déclaration de structure contient un ensemble d'attributs facultatifs, suivi d'un ensemble de modificateurs de structure facultatifs, suivi du mot-clé struct et d'un identifiant utilisé pour nommer la structure, suivi d'une spécification facultative d'interface de structure, et enfin d'un corps de structure, suivi d'un point-virgule si nécessaire. La déclaration de structure peut contenir un modificateur de structure selon les besoins : nouveau, public, protégé, interne, privé
La déclaration d'une classe en C# est instanciée via le mot clé class. Le format est :
Nom de classe de classe modificatrice : classe de base ou interface
{
Classe. corps
}
’ ‐ à } ‐ ‐ ‐ ‐ Où " modifier", ": classe de base ou interface" sont facultatifs. Le modificateur d'une classe peut être l'un des éléments suivants ou une combinaison de ceux-ci (le même modificateur n'est pas autorisé à apparaître plusieurs fois dans la déclaration de classe ()).
(1) nouveau : autorisé uniquement à être utilisé lors de la déclaration d'une classe imbriquée, indiquant que la classe cache les membres hérités de la classe de base et portant le même nom que la classe de base
(2 )public : Indique que l'accès à la classe n'est pas restreint
(3)interne : Seule la classe dans laquelle elle se trouve peut accéder
(4) Privé : Seules les applications ou bibliothèques en . NET peut y accéder Accès
(5)abstract : classe abstraite, non autorisée à créer des instances de la classe
(6)sealed : classe scellée, dont l'héritage n'est pas autorisé
Déclaration d'héritage de classe : le langage C# ne prend en charge que l'héritage unique
(1), constructeur et destructeur
C# fournit un meilleur mécanisme pour améliorer la sécurité du programme . Le compilateur C# dispose d'une fonction de contrôle de sécurité de type stricte, qui peut détecter presque tous les problèmes de syntaxe dans le programme. Cependant, ce n’est pas parce que le programme réussit la vérification de compilation que l’erreur n’existe plus.
Le langage C# prend pleinement en compte l'apparition d'erreurs de programme et les résout bien, c'est-à-dire en plaçant le travail d'initialisation de l'objet dans le constructeur et le travail de nettoyage dans le destructeur. Lorsqu'un objet est créé, le constructeur est exécuté automatiquement. Lorsque l'objet meurt, le destructeur est exécuté automatiquement.
Le nom du constructeur ne peut pas être choisi au hasard. Il doit être reconnu par le compilateur avant de pouvoir être automatiquement exécuté. Sa méthode de dénomination est simple et raisonnable : laissez le constructeur porter le même nom que la classe. Outre le nom, une autre particularité du constructeur est qu'il n'a pas de type de valeur de retour, ce qui est différent de la fonction dont le type de valeur de retour est void.
Le destructeur est un membre de méthode qui détruit une instance d'une classe. Le destructeur ne peut pas avoir de paramètres, ni de modificateurs et ne peut pas être appelé. Le but du destructeur et du constructeur est différent, donc le destructeur est préfixé par « ~ » pour montrer la différence.
Bien que le constructeur et le destructeur soient des fonctions formellement plus simples dans une classe. Mais leur utilisation n'est en aucun cas aussi simple qu'il y paraît, donc utiliser les constructeurs et les destructeurs de manière flexible et correcte peut aider les utilisateurs à mieux comprendre le mécanisme de gestion de la mémoire du CLR et à mieux gérer les ressources du système.
(2), Classes et objets
Une classe est une collection d'objets avec les mêmes propriétés et services. Il fournit une description abstraite unifiée pour tous les objets appartenant à cette classe, qui comprend deux parties principales : les attributs et les services. Dans les langages de programmation orientés objet, une classe est une unité de programme indépendante, qui porte un nom de classe. Le nom de classe comprend deux parties principales : la description de l'attribut et la description du service.
Un objet est une entité utilisée pour décrire des choses objectives dans le système et est une unité de base du système. Un objet est constitué d'un ensemble de propriétés et d'un ensemble de services qui opèrent sur l'ensemble de propriétés. D'un point de vue plus abstrait, un objet est une abstraction de quelque chose dans le domaine du problème ou du domaine de mise en œuvre, reflétant les informations qui doivent être sauvegardées et le rôle que joue la chose dans le système. Il s'agit d'un ensemble d'attributs et du droit de le faire. effectuer des opérations sur ces attributs. Un wrapper pour un ensemble de services qui fonctionne. Le monde objectif est composé d'objets et de connexions entre les objets.
La relation entre une classe et un objet est comme la relation entre un moule et un moulage. Le résultat de l'instanciation d'une classe est un objet. L'abstraction d'un type d'objet est une classe. Une classe décrit un groupe d'objets ayant les mêmes caractéristiques (propriétés) et le même comportement (méthodes).
Pour plus d'articles liés aux structures et classes C#, veuillez faire attention au site Web PHP chinois !