Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Constructeurs C# : Types, exemples et patterns avancés

Constructeurs C#

Découvrez comment les constructeurs initialisent les objets en C#, couvrant tous les types de constructeurs, patterns et bonnes pratiques.

En C#, un constructeur est une méthode spéciale invoquée automatiquement quand une nouvelle instance d'une classe est créée. Contrairement aux méthodes régulières, les constructeurs :


Création d'un constructeur C#

Définissez un constructeur dans une classe en faisant correspondre le nom de la classe :

class Voiture {
    // constructeur
    Voiture() {
        // code d'initialisation
    }
}

Ici, Voiture() est le constructeur. Il est invoqué en utilisant le mot-clé new :

new Voiture();

Par exemple :

Voiture voiture1 = new Voiture();

Voir aussi : Classes et objets C#.


Types de constructeurs

Les catégories typiques de constructeurs incluent :


1. Constructeur sans paramètre

Un constructeur sans paramètres est appelé constructeur sans paramètre ou par défaut. Exemple :

using System;
namespace ConstructorDemo {
    class Voiture {
        // constructeur sans paramètre
        Voiture() {
            Console.WriteLine("Constructeur Voiture");
        }
        static void Main(string[] args) {
            new Voiture();
            Console.ReadLine();
        }
    }
}

Sortie

Constructeur Voiture

2. Constructeur paramétré

Les constructeurs peuvent accepter des arguments pour initialiser les champs d'instance :

using System;
namespace ConstructorDemo {
    class Voiture {
        string marque;
        int prix;
        // constructeur paramétré
        Voiture(string laMarque, int lePrix) {
            marque = laMarque;
            prix = lePrix;
        }
        static void Main(string[] args) {
            Voiture voiture1 = new Voiture("Bugatti", 50000);
            Console.WriteLine("Marque : " + voiture1.marque);
            Console.WriteLine("Prix : " + voiture1.prix);
            Console.ReadLine();
        }
    }
}

Sortie

Marque : Bugatti
Prix : 50000

3. Constructeur par défaut

Si vous omettez un constructeur, le compilateur fournit un constructeur sans paramètre implicite qui initialise les champs à leurs valeurs par défaut. Exemple :

using System;
namespace ConstructorDemo {
    class Program {
        int a;
        static void Main(string[] args) {
            Program p1 = new Program();
            Console.WriteLine("Valeur par défaut de a : " + p1.a);
            Console.ReadLine();
        }
    }
}

Sortie

Valeur par défaut de a : 0

Les champs numériques prennent par défaut 0, tandis que les chaînes et objets prennent par défaut null.


4. Constructeur de copie

Un constructeur de copie crée une nouvelle instance en copiant l'état d'un autre objet :

using System;
namespace ConstructorDemo {
    class Voiture {
        string marque;
        // constructeur principal
        Voiture(string laMarque) {
            marque = laMarque;
        }
        // constructeur de copie
        Voiture(Voiture v1) {
            marque = v1.marque;
        }
        static void Main(string[] args) {
            Voiture voiture1 = new Voiture("Bugatti");
            Console.WriteLine("Marque de voiture1 : " + voiture1.marque);
            Voiture voiture2 = new Voiture(voiture1);
            Console.WriteLine("Marque de voiture2 : " + voiture2.marque);
            Console.ReadLine();
        }
    }
}

Sortie

Marque de voiture1 : Bugatti
Marque de voiture2 : Bugatti

5. Constructeur privé

Marquer un constructeur private empêche l'instanciation externe, utile pour les patterns singleton ou classes utilitaires.

Exemple

using System;
namespace ConstructorDemo {
    class Voiture {
        private Voiture() {
            Console.WriteLine("Constructeur Privé");
        }
    }
    class VoitureDrive {
        static void Main(string[] args) {
            // Voiture voiture1 = new Voiture(); // erreur de compilation
            Console.ReadLine();
        }
    }
}

L'erreur :

error CS0122: 'Voiture.Voiture()' est inaccessible en raison de son niveau de protection

Note : Quand un constructeur est privé, tous les membres de la classe devraient être statiques pour permettre l'accès via le nom de la classe.


6. Constructeur statique

Un constructeur statique s'exécute une fois par type, avant qu'aucun membre d'instance ou statique ne soit accédé. Il ne peut pas être appelé directement et ne doit pas avoir de paramètres.

using System;
namespace ConstructorDemo {
    class Voiture {
        static Voiture() {
            Console.WriteLine("Constructeur Statique");
        }
        Voiture() {
            Console.WriteLine("Constructeur Par Défaut");
        }
        static void Main(string[] args) {
            Voiture voiture1 = new Voiture();
            Voiture voiture2 = new Voiture();
            Console.ReadLine();
        }
    }
}

Sortie

Constructeur Statique
Constructeur Par Défaut
Constructeur Par Défaut

Note : Un seul constructeur statique par classe ; il ne peut pas avoir de paramètres ou modificateurs d'accès.


Surcharge de constructeurs C#

Définissez plusieurs constructeurs avec des listes de paramètres différentes pour fournir une création d'objet flexible. Exemple :

using System;
namespace ConstructorOverloadDemo {
    class Voiture {
        Voiture() {
            Console.WriteLine("Constructeur Voiture");
        }
        Voiture(string marque) {
            Console.WriteLine("Constructeur Voiture avec un paramètre");
            Console.WriteLine("Marque : " + marque);
        }
        static void Main(string[] args) {
            Voiture voiture = new Voiture();
            Console.WriteLine();
            Voiture voiture2 = new Voiture("Bugatti");
            Console.ReadLine();
        }
    }
}

Sortie

Constructeur Voiture
Constructeur Voiture avec un paramètre
Marque : Bugatti

Le compilateur sélectionne le constructeur correspondant basé sur le nombre et les types d'arguments. En savoir plus sur Surcharge de constructeurs C#.

Langue C

  1. Comprendre les classes imbriquées C# : Définition, utilisation et héritage
  2. Maîtriser la surcharge de constructeurs en C#
  3. Comprendre les constructeurs C++ : Par défaut, paramétrés et de copie expliqués
  4. Maîtriser les constructeurs Java : Types, utilisation et exemples pratiques
  5. Constructeurs d'enum Java expliqués avec exemple pratique
  6. Comprendre le Liquide de Refroidissement Moteur : Rôle, Types et Entretien
  7. Comprendre les Constructeurs Java : Initialisation et Bonnes Pratiques
  8. Comment le nombre de cylindres façonne la performance des moteurs modernes
  9. Extensions de garantie auto : comment elles vous protègent et font économiser