Partager via


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

Structures, exemple

Concepts

Guide de programmation C#

Référence

Structures (Guide de programmation C#)

Autres ressources

Langage de programmation C# pour les développeurs Java