0Pricing
C# Academy · Leçon

Combiner avec des propriétés et des types de base

Transmettez les paramètres aux types de base et aux propriétés.

Combiner avec des propriétés et des types de base est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 4 leçons au total.

Associer constructeurs principaux et héritage

Une classe dérivée dotée d’un constructeur principal peut transmettre ses paramètres à une classe de base au moyen de la syntaxe : Base(args) dans l’en-tête.

using System;

class Animal(string name) {
    public string Name => name;
}

class Dog(string name) : Animal(name) {
    public string Speak() => Name + " says Woof";
}

Console.WriteLine(new Dog("Rex").Speak()); // Rex says Woof

Transmettre un sous-ensemble de paramètres

La classe dérivée peut accepter davantage de paramètres que la classe de base et ne transmettre que ceux qui sont pertinents.

using System;

class Shape(string color) {
    public string Color => color;
}

class Box(string color, int size) : Shape(color) {
    public int Size => size;
}

var b = new Box("red", 5);
Console.WriteLine(b.Color + " " + b.Size); // red 5

Transformer les arguments transmis à la classe de base

Vous pouvez calculer les arguments du constructeur de la classe de base à partir des paramètres de la classe dérivée, directement dans l’en-tête.

using System;

class Label(string text) {
    public string Text => text;
}

class UpperLabel(string text) : Label(text.ToUpper()) {
}

Console.WriteLine(new UpperLabel("hi").Text); // HI

Ajouter des propriétés en parallèle

Un constructeur principal et des propriétés explicites peuvent coexister. Initialisez les propriétés à partir des paramètres lors de la déclaration.

using System;

class Product(string name, decimal price) {
    public string Name { get; } = name;
    public decimal Price { get; set; } = price;
}

var p = new Product("Book", 12m);
p.Price = 10m;
Console.WriteLine(p.Name + " " + p.Price); // Book 10

Paramètres de Base et utilisation dans la classe dérivée

Même après avoir été transmis à la classe de base, un paramètre du constructeur principal dérivé peut toujours être utilisé dans le corps de la classe dérivée.

using System;

class Base(int id) {
    public int Id => id;
}

class Item(int id, string label) : Base(id) {
    public string Describe() => "#" + id + ": " + label;
}

Console.WriteLine(new Item(7, "Widget").Describe()); // #7: Widget

Enregistrements et constructeurs principaux

Les enregistrements utilisent les constructeurs principaux pour générer automatiquement des propriétés publiques avec initialisation unique. Un enregistrement positionnel est le cas le plus concis.

using System;

record Person(string First, string Last) {
    public string Full => First + " " + Last;
}

Console.WriteLine(new Person("Ada", "Lovelace").Full); // Ada Lovelace

Héritage des enregistrements

Les enregistrements dérivés transmettent leurs paramètres positionnels à un enregistrement de base, ce qui génère l’ensemble combiné des propriétés.

using System;

record Vehicle(string Make);
record Car(string Make, int Doors) : Vehicle(Make);

var c = new Car("Toyota", 4);
Console.WriteLine(c.Make + " " + c.Doors); // Toyota 4

Validation avant l’appel de la classe de base

Si vous avez besoin d’une validation, effectuez-la dans un initialiseur de propriété au moyen d’une expression de levée d’exception ; l’appel de la classe de base est tout de même exécuté en premier.

using System;

class Base(string tag) { public string Tag => tag; }

class Node(string tag) : Base(tag) {
    public string Tag2 { get; } =
        tag.Length > 0 ? tag : throw new ArgumentException("empty");
}

Console.WriteLine(new Node("a").Tag); // a

Mélanger paramètres capturés et propriétés

Vous pouvez conserver certains paramètres comme état privé capturé et exposer les autres sous forme de propriétés, afin d’adapter l’interface publique.

using System;

class Order(int id, decimal total) {
    public decimal Total { get; } = total; // public
    public string Reference() => "ORD-" + id;   // id stays private
}

var o = new Order(42, 99m);
Console.WriteLine(o.Reference() + " " + o.Total); // ORD-42 99

Valeurs par défaut des propriétés

Les propriétés qui ne sont pas liées à des paramètres peuvent tout de même recevoir des initialiseurs par défaut et se combiner librement avec les paramètres du constructeur principal.

using System;

class Session(string user) {
    public string User { get; } = user;
    public bool Active { get; set; } = true;
}

var s = new Session("kai");
Console.WriteLine(s.User + " " + s.Active); // kai True

Mise en pratique

Une classe dérivée qui transmet des paramètres à une classe de base, ajoute une propriété et expose un membre calculé.

using System;

class Employee(string name) {
    public string Name => name;
}

class Manager(string name, int teamSize) : Employee(name) {
    public int TeamSize { get; } = teamSize;
    public string Title => Name + " (manages " + TeamSize + ")";
}

Console.WriteLine(new Manager("Sam", 5).Title); // Sam (manages 5)

Vérification rapide

Vérifiez comment les constructeurs principaux transmettent des paramètres aux classes de base.

Récapitulatif

Vous avez appris à associer les constructeurs principaux aux propriétés et aux classes de base.

  • class D(...) : Base(args) transmet les paramètres à la classe de base.
  • Les arguments transmis à la classe de base peuvent être calculés directement.
  • Les propriétés peuvent être initialisées à partir des paramètres lors de la déclaration.
  • Les enregistrements génèrent des propriétés publiques avec initialisation unique à partir de paramètres positionnels.

Questions Fréquemment Posées

La leçon « Combiner avec des propriétés et des types de base » est-elle gratuite ?

Oui — le texte complet de « Combiner avec des propriétés et des types de base » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Combiner avec des propriétés et des types de base » ?

Transmettez les paramètres aux types de base et aux propriétés. Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C# Academy ?

Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Combiner avec des propriétés et des types de base » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?

Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Constructeurs primaires dans les classes
  2. Capturer des paramètres dans les membres
  3. Constructeurs primaires avec les structures
  4. Combiner avec des propriétés et des types de base
← Retour à C# Academy