Structs (C# et Java)
Mise à jour : novembre 2007
C# prend en charge le mot clé struct, autre élément provenant de C non disponible en Java. Vous pouvez comparer un struct à une classe légère. Bien que les structs puissent contenir des constructeurs, constantes, champs, méthodes, propriétés, indexeurs, opérateurs et types imbriqués, ils sont principalement utilisés pour simplement encapsuler les groupes de champs connexes. Comme les structs sont des types valeur, ils peuvent être alloués un peu plus efficacement que les classes. Les structs diffèrent des classes en ce sens qu'ils ne peuvent pas être abstraits et ne prennent pas en charge l'héritage d'implémentation.
Dans l'exemple suivant, vous initialisez un struct avec le mot clé new, en appelant le constructeur sans paramètre par défaut, puis en définissant les membres de l'instance.
public struct Customer
{
public int ID;
public string Name;
public Customer(int customerID, string customerName)
{
ID = customerID;
Name = customerName;
}
}
class TestCustomer
{
static void Main()
{
Customer c1 = new Customer(); //using the default constructor
System.Console.WriteLine("Struct values before initialization:");
System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
System.Console.WriteLine();
c1.ID = 100;
c1.Name = "Robert";
System.Console.WriteLine("Struct values after initialization:");
System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
}
}
Sortie
En compilant et exécutant le code précédent, sa sortie montre que les variables struct sont initialisées par défaut. La variable int est initialisée à 0 et la variable chaîne à une chaîne vide :
Struct values before initialization:
ID = 0, Name =
Struct values after initialization:
ID = 100, Name = Robert
Voir aussi
Tâches
Concepts
Référence
Structures (Guide de programmation C#)