Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Constructeurs de Struct | Structures et Énumérateurs
C# au-delà des Bases
course content

Contenu du cours

C# au-delà des Bases

C# au-delà des Bases

1. Structures Supplémentaires et Gestion des Fichiers
2. Structures et Énumérateurs
3. Introduction à la Programmation Orientée Objet (POO)
4. Essentiels de la POO
5. Principes de la POO

book
Constructeurs de Struct

Un constructeur est une méthode qui est automatiquement exécutée lorsqu'un nouvel objet est créé.

La syntaxe d'un constructeur est quelque peu similaire à celle d'une méthode, nous omettons simplement le returnType car un constructeur ne retourne aucune valeur:

cs

index

copy
1234567891011
struct structureName { // ... fields (optional) public structureName(parameter1, parameter2, ...) { // code } // ... methods (optional) }

Les points suivants sont importants à noter concernant la syntaxe du constructeur:

  1. Le nom du constructeur est le même que le nom de la structure.
  2. Un constructeur n'a pas de valeur de retour.

Le programme suivant démontre comment le constructeur est appelé chaque fois qu'un objet est créé:

cs

index

copy
12345678910111213141516171819
using System; struct Player { public Player() { Console.WriteLine($"New Player Object Created"); } } class Program { static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }

Ajoutons un champ à Player appelé id qui sera un identifiant unique de cet objet afin que chaque objet ait une valeur différente pour id. Il commencera à 0 et s'incrémentera. Pour y parvenir, nous créerons une variable globale appelée totalPlayers.

cs

index

copy
12345678910111213141516171819202122232425262728
using System; class ConsoleApp { // We use the term 'static' when declaring variables directly under class // This will be explained in much more detail in later sections. public static int totalPlayers = 0; // This time we create put the struct inside the `ConsoleApp` class // This is to be able to use the `totalPlayers` variable easily. struct Player { public int id; public Player() { id = totalPlayers++; Console.WriteLine($"New Player Object Created With ID {id}"); } } static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }

Dans le code ci-dessus, nous avons placé la structure à l'intérieur de la classe Program pour pouvoir accéder à la variable 'totalPlayers' depuis l'intérieur du constructeur.

Nous pouvons passer des données dans un constructeur lors de la création d'un nouvel objet en utilisant la syntaxe suivante :

Voici un exemple pratique de l'utilisation :

cs

index

copy
1234567891011121314151617181920212223242526272829
using System; struct Coordinate3D { public double x; public double y; public double z; public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } public void displayValue() { Console.WriteLine($"{this.x}, {this.y}, {this.z}"); } } class ConsoleApp { static void Main(string[] args) { Coordinate3D coord1 = new Coordinate3D(3, 5, 7); coord1.displayValue(); } }

Examinons le code étape par étape.

Tout d'abord, nous avons créé un constructeur et à l'intérieur du constructeur, nous avons assigné les valeurs passées x, y, z aux champs x, y et z :

cs

index

copy
123456
public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; }

À l'intérieur de la méthode Main, nous avons créé un nouvel objet Coordinate3D et passé 3, 5 et 7 comme x, y et z via le constructeur.

cs

index

copy
1
Coordinate3D coord1 = new Coordinate3D(3, 5, 7);

Pour confirmer si les champs ont été correctement initialisés par le constructeur ou non, nous avons utilisé la méthode displayValue :

cs

index

copy
1
coord1.displayValue();

La sortie a prouvé que les champs ont été mis à jour avec succès.

Les constructeurs sont très utiles lorsque nous voulons initier des objets avec certaines données ou pour effectuer certaines opérations initiales lors de la création d'un objet.

Quand les constructeurs sont-ils appelés ?

Quand les constructeurs sont-ils appelés ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 8
We're sorry to hear that something went wrong. What happened?
some-alt