Propriétés implémentées automatiquement
Déclarez des propriétés avec une syntaxe automatique concise.
Propriétés implémentées automatiquement est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 1 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.
Qu’est-ce qu’une propriété ?
Une propriété ressemble à un champ vu de l’extérieur, mais elle repose sur des méthodes d’accès (get et set). Les propriétés vous permettent d’exposer des données tout en contrôlant la manière dont elles sont lues et écrites.
using System;
class Program
{
public string Name { get; set; }
static void Main()
{
var p = new Program();
p.Name = "Coddy";
Console.WriteLine(p.Name);
}
}Syntaxe des propriétés automatiques
Une propriété automatique utilise { get; set; }. Le compilateur génère pour vous un champ de stockage masqué, vous n’avez donc pas à l’écrire vous-même.
using System;
class Person
{
public string FirstName { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
var person = new Person { FirstName = "Ada", Age = 36 };
Console.WriteLine(person.FirstName + " is " + person.Age);
}
}Pourquoi utiliser des propriétés plutôt que des champs ?
Les propriétés publiques vous offrent une interface de programmation stable. Vous pouvez ajouter ultérieurement une validation ou modifier le stockage sans perturber le code appelant. Les champs publics ne le permettent pas.
using System;
class Account
{
public decimal Balance { get; set; }
}
class Program
{
static void Main()
{
var a = new Account();
a.Balance = 100.50m;
Console.WriteLine("Balance: " + a.Balance);
}
}Propriétés automatiques en lecture seule
Omettez set pour rendre une propriété accessible en lecture seule. Elle ne peut être affectée que dans le constructeur ou au moyen d’un initialiseur, ce qui fournit des valeurs immuables par défaut.
using System;
class Circle
{
public double Radius { get; }
public Circle(double radius)
{
Radius = radius;
}
}
class Program
{
static void Main()
{
var c = new Circle(5.0);
Console.WriteLine("Radius: " + c.Radius);
}
}Valeurs par défaut des propriétés
Vous pouvez donner une valeur initiale à une propriété automatique avec = value;. Cette initialisation s’effectue lorsque l’objet est créé, avant le corps du constructeur.
using System;
class Settings
{
public bool DarkMode { get; set; } = true;
public int Volume { get; set; } = 50;
}
class Program
{
static void Main()
{
var s = new Settings();
Console.WriteLine("DarkMode: " + s.DarkMode + ", Volume: " + s.Volume);
}
}Accesseurs set privés
Un private set permet à la classe de modifier la valeur en interne tout en empêchant le code extérieur de la modifier. Il s’agit d’un modèle d’encapsulation courant.
using System;
class Counter
{
public int Count { get; private set; }
public void Increment()
{
Count++;
}
}
class Program
{
static void Main()
{
var counter = new Counter();
counter.Increment();
counter.Increment();
Console.WriteLine("Count: " + counter.Count);
}
}Accesseurs initiaux
L’accesseur init (C# 9+) autorise l’affectation uniquement pendant l’initialisation de l’objet. Une fois la construction terminée, la valeur est verrouillée.
using System;
class Product
{
public string Name { get; init; }
public decimal Price { get; init; }
}
class Program
{
static void Main()
{
var p = new Product { Name = "Book", Price = 12.99m };
Console.WriteLine(p.Name + ": " + p.Price);
}
}Propriétés avec différents niveaux d’accès
Les propriétés suivent les modificateurs d’accès habituels. Vous pouvez combiner les niveaux : un accesseur get public avec un accesseur set privé, ou une propriété entièrement interne.
using System;
class User
{
public string Id { get; private set; }
public User(string id)
{
Id = id;
}
}
class Program
{
static void Main()
{
var u = new User("u-001");
Console.WriteLine("User Id: " + u.Id);
}
}Propriétés automatiques qui semblent calculées
Les propriétés automatiques stockent des données ; elles ne les calculent pas. Si vous avez besoin d’une valeur calculée, vous devez utiliser une propriété complète, présentée plus loin. Pour l’instant, considérez les propriétés automatiques comme un simple stockage.
using System;
class Rectangle
{
public double Width { get; set; }
public double Height { get; set; }
}
class Program
{
static void Main()
{
var r = new Rectangle { Width = 4, Height = 3 };
double area = r.Width * r.Height;
Console.WriteLine("Area: " + area);
}
}Mise à jour des propriétés automatiques
Vous pouvez lire et réaffecter une propriété automatique modifiable autant de fois que vous le souhaitez, comme une variable.
using System;
class Player
{
public int Score { get; set; }
}
class Program
{
static void Main()
{
var player = new Player();
player.Score = 10;
player.Score += 5;
player.Score *= 2;
Console.WriteLine("Score: " + player.Score);
}
}Mise en pratique
Une classe de modèle typique est principalement composée de propriétés automatiques : certaines modifiables, d’autres à initialisation unique, et d’autres avec des accesseurs set privés. La classe reste ainsi concise et claire.
using System;
class BankAccount
{
public string Owner { get; init; }
public decimal Balance { get; private set; }
public void Deposit(decimal amount)
{
Balance += amount;
}
}
class Program
{
static void Main()
{
var acct = new BankAccount { Owner = "Lin" };
acct.Deposit(250m);
Console.WriteLine(acct.Owner + ": " + acct.Balance);
}
}Vérification rapide
Vérifiez votre compréhension des propriétés automatiques.
Récapitulatif
Vous avez appris que les propriétés automatiques utilisent { get; set; } avec un champ de stockage généré par le compilateur. Les variantes comprennent { get; } en lecture seule, private set pour contrôler les modifications et init pour les valeurs définies une seule fois. Il s’agit de la manière standard d’exposer des données dans une classe.
using System;
class Demo
{
public string A { get; set; } = "settable";
public string B { get; } = "read-only";
public string C { get; init; } = "init-only";
}
class Program
{
static void Main()
{
var d = new Demo { C = "changed-at-init" };
Console.WriteLine(d.A + ", " + d.B + ", " + d.C);
}
}Questions Fréquemment Posées
La leçon « Propriétés implémentées automatiquement » est-elle gratuite ?
Oui — le texte complet de « Propriétés implémentées automatiquement » 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 « Propriétés implémentées automatiquement » ?
Déclarez des propriétés avec une syntaxe automatique concise. 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 1 sur 4.
Combien de temps prend la leçon « Propriétés implémentées automatiquement » ?
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
- Propriétés implémentées automatiquement
- Propriétés complètes avec champs de stockage
- Membres dont le corps est une expression
- Indexeurs