Avatar ·

Quelle est la différence entre un champ (field) et une propriété (property) en C# ?

Bonjour ! J'ai commencé à apprendre le C# et je n'arrive pas à comprendre complètement la différence entre un champ et une propriété. Apparemment, les deux stockent des données, mais à quoi servent les propriétés si on peut simplement utiliser des champs ? J'ai vu des exemples où les gens écrivent quelque chose comme : ```csharp public class Person { public string Name; // champ public int Age { get; set; } // propriété } ``` Et apparemment, les deux fonctionnent de la même manière. Mais j'ai entendu dire que les propriétés sont la « bonne » façon de faire, et qu'il vaut mieux rendre les champs privés. Pourquoi ? Quel est le piège ? Pouvez-vous expliquer avec des exemples ? Merci d'avance ! <<>>

Différence principale : un champ est une variable, une propriété est une méthode

À première vue, un champ et une propriété se ressemblent effectivement, mais leur nature interne est fondamentalement différente. Un champ est simplement une zone mémoire pour stocker une valeur. Une propriété est du sucre syntaxique autour des méthodes get et set qui contrôlent l'accès au champ.

Voici comment le compilateur voit votre