Que signifie le champ ?
Un champ, en C#, est membre d'une classe ou d'un objet de tout type qui représente un emplacement mémoire pour stocker une valeur.
Les champs sont utilisés pour stocker des données qui doivent être accessibles à plusieurs méthodes d'une classe et disponibles tout au long de la durée de vie d'un objet. Les champs permettent à une classe ou à une structure d'encapsuler les données avec des options permettant de spécifier son accessibilité à plusieurs niveaux.
En général, un champ est utilisé pour définir une variable dans une classe avec accessibilité comme privée ou protégée. Un champ qui doit être exposé n'importe où en dehors de la classe peut être encapsulé en tant que méthode publique, propriété ou indexeur.
Un champ est également appelé variable de niveau classe ou variable membre.
Weendoz explique le champ
Un champ doit être déclaré dans un type (classe ou struct) avec son type de données et un identifiant qui nomme le membre. Il peut également être spécifié avec des attributs et des modificateurs tels que new, modificateur d'accès (public, privé, protégé, interne), static, read-only et volatile lors de sa déclaration. On peut également lui attribuer une valeur initiale.
Un champ peut être de type statique ou instance. Un champ statique n’est associé à aucune instance d’un type et est partagé entre toutes les instances du type. Un champ d'instance est associé à une instance d'un type de telle sorte que chaque instance d'un type possède son propre ensemble de tous les champs d'instance d'une classe.
Par exemple, les détails personnels d'une classe Employee tels que le nom, la désignation, etc. peuvent être stockés sous forme de champs d'instance pour stocker les valeurs de chaque objet Employee.
Un champ en lecture seule ne peut être attribué que lors de la déclaration ou dans une instance ou un constructeur statique de cette classe.
Un champ diffère d'une variable locale dans la mesure où la première est accessible par plusieurs méthodes et peut être utilisée en dehors de la portée d'une seule méthode, tandis que la seconde est utilisée dans la méthode elle-même.
Un champ peut être protégé par une propriété qui permet de lire et d'écrire (après validation) un champ. La propriété permet également de modifier l'implémentation interne des données représentées sous forme de champ sans casser le code existant.