Types définis par l’utilisateur

Types personnalisés

Hormis les 16 types prédéfinis natifs du langage C#, les développeurs ont la possibilité de créer leurs propres types utilisateur, répartis en six catégories distinctes :

  1. Les types classe (class)
  2. Les types structure (struct)
  3. Les types tableau (array)
  4. Les types énumération (enum)
  5. Les types délégué (delegate)
  6. Les types interface

La création d’un type personnalisé s’effectue via une déclaration de type

  • La catégorie du type à concevoir
  • Le nom du nouveau type créé
  • La déclaration de l’ensemble des membres du type (leur nom et définition) — tableaux et délégués font exception, ils ne possèdent pas de membres nommés

Une fois la déclaration achevée, vous pouvez instancier et manipuler des objets de ce type exactement comme n’importe quel type prédéfini.

Les types prédéfinis (types natifs) sont exploitables immédiatement, sans déclaration préalable, et permettent de créer des instances d’objets directement. Les types personnalisés, comme leur nom l’indique, demandent de définir d’abord le schéma du type avant de pouvoir instancier des objets à partir de celui-ci.

Par exemple : les types de base natifs comme int ou float sont prêts à l’emploi sans configuration préalable ; on peut écrire directement int age; float price;.
En revanche, pour le type personnalisé Person vu précédemment, deux étapes sont obligatoires :

Étape 1 : Déclaration (définition du modèle de type avec class Person {})

Étape 2 : Instanciation (création d’un objet avec Person lucas = new Person();)

// Classe automobile
public class Car
{
    // 1. Champs privés (stockage des données brutes en arrière-plan)
    private string _brand;    // Marque du véhicule
    private string _color;    // Couleur du véhicule

    // 2. Propriétés publiques (points d’accès externes, possibilité d’ajouter des contrôles de validation)
    public string Brand
    {
        get { return _brand; }
        set
        {
            // Contrôle simple : la marque ne peut pas être vide
            if (!string.IsNullOrEmpty(value))
                _brand = value;
            else
                Console.WriteLine("Le nom de la marque ne peut pas être vide !");
        }
    }

    public string Color
    {
        get { return _color; }
        set { _color = value; }
    }

    // 3. Méthode comportementale : conduire
    public void Drive()
    {
        Console.WriteLine($"Une voiture de marque【{Brand}】et de couleur【{Color}】est en circulation !");
    }
}Langage du code : JavaScript (javascript)

L’exemple ci-dessus correspond à une classe Car (voiture) dotée de deux champs. Les champs sont des variables basées sur des types natifs qui stockent les données réelles. On y trouve aussi deux propriétés publiques Brand et Color, qui se comportent en réalité comme des fonctions, nous détaillerons ce point plus tard. On dispose enfin d’un membre fonction : public void Drive().

Nous détaillerons en profondeur chacun de ces types personnalisés dans les chapitres suivants.

Types définis par l’utilisateur

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *