Maison > Article > développement back-end > Structure C# vs classe
Comme son nom l'indique, C# utilise le mot-clé « struct » pour définir les types de valeur, et Class utilise le mot-clé « class » pour définir les types de référence. En C#, les variables définies dans la structure sont stockées dans la pile ou dans le type de variable donné et les instances sont appelées comme variable de structure. Alors que, pour une « classe », les instances sont appelées en tant qu’objets et sont stockées dans des unités de mémoire structurées en tas. En termes de constructeurs et de destructeurs, une structure C# ne peut pas avoir de destructeur, mais une classe peut avoir un destructeur. La classification des membres est autorisée dans la classe, comme les types abstraits, virtuels et protégés.
Vous trouverez ci-dessous les 14 principales différences entre C# Struct et Class.
Certaines différences clés entre C# Struct et Class sont les suivantes :
Code :
using System; namespace structAndClass { //creating structure public struct Demo { public int x, y; //parameterized constructor public Demo(int x, int y) { this.x = x; this.y = y; } } public class StructDemo { public static void Main(string[] args) { Demo a = new Demo(50, 50); Demo b = a; a.x = 100; Console.WriteLine("Value of a.x = "+a.x); Console.WriteLine("Value of b.x = "+b.x); } } }
Sortie :
Code :
using System; namespace structAndClass { public class Demo { public int x, y; public Demo(int x, int y) { this.x = x; this.y = y; } } public class StructDemo { public static void Main(string[] args) { Demo a = new Demo(50, 50); Demo b = a; a.x = 100; Console.WriteLine("Value of a.x = "+a.x); Console.WriteLine("Value of b.x = "+b.x); } } }
Sortie :
Voyons quelques différences supplémentaires entre C# Struct et Class à travers un tableau de comparaison pour une compréhension claire :
Parameter | C# Struct | Class |
Data type | The structure is a value type of data type. | Class is a reference type data type. |
Keyword | The structure can be defined using the ‘struct’ keyword. | The class can be defined using the ‘class’ keyword. |
Storage area | The structure variable is stored either in stack or inline in containing type. | The object of the class is stored in heap. |
Instance creation | The instance of a struct can be created with or without a ‘new’ keyword. | The instance of the class is created using a ‘new’ keyword. |
Assignment | If we make an assignment to a variable of struct type then it creates a copy of the value being assigned. Thus, each variable instructs has its copy of data. | If we make an assignment to a variable of class type then it copies the reference. Thus, two or more variables in class can refer to the same object. |
Constructor | The structure does not contain a parameterless instance constructor. | The class contains a parameterless instance constructor, if not defined explicitly by the user. |
Destructor | It cannot have a destructor. | It can have a destructor. |
Inheritance | The structure cannot inherit from another class or structure.
The structure cannot be used as a base for another structure or class. |
The class can inherit from another class. The class can be a base class for another class. |
Data members | Members of a struct cannot be abstract, virtual or protected. | Members of a class can be abstract, virtual or protected. |
Instance | The instance of the structure is called the structure variable. | The instance of the class is called an object. |
Default access specifier | Members of the structure are public by default. | Members of the class are private by default. |
Usage | The structure can be used for small data structures. | Class is used for the complex data structure. |
Garbage collection | The instance of a struct cannot be garbage collected. | The instance of the class can be garbage collected. |
Variable initializing | Including variable initializer is not allowed while making instance field declarations instruct. | Including variable initializer is allowed while making instance field declarations in a class. |
La classe et la structure sont utilisées pour contenir les éléments de données associés. Nous pouvons utiliser la classe pour un grand nombre de données et utiliser la structure pour les petites données. La classe est de type référence et stockée dans le tas tandis que la structure est de type valeur et stockée dans la pile.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!