En C#, qu'est-ce qui différencie un champ d'une propriété, et quand faut-il utiliser un champ au lieu d'une propriété ?
Réponses
Trop de publicités?(Ceci devrait vraiment être un commentaire, mais je ne peux pas poster de commentaire, alors veuillez m'excuser si ce n'est pas approprié comme post).
J'ai travaillé une fois dans un endroit où la pratique recommandée était d'utiliser des champs publics au lieu de propriétés lorsque la défense de propriété équivalente aurait simplement consisté à accéder à un champ, comme dans :
get { return _afield; }
set { _afield = value; }
Leur raisonnement était que le terrain public pourrait être transformé en propriété plus tard, si nécessaire. Cela me semblait un peu étrange à l'époque. À en juger par ces messages, il semble que peu de personnes ici soient d'accord. Qu'auriez-vous pu dire pour essayer de changer les choses ?
Edit : Je devrais ajouter que toute la base de code à cet endroit a été compilée en même temps, donc ils ont pu penser que changer l'interface publique des classes (en changeant un champ public en propriété) n'était pas un problème.
Techniquement, je ne pense pas qu'il y ait de différence, car les propriétés ne sont que des enveloppes autour des champs créés par l'utilisateur ou automatiquement par le compilateur. Le but des propriétés est de renforcer l'encapsulation et d'offrir une fonctionnalité légère semblable à une méthode. Le but des propriétés est de renforcer l'encapsulation et d'offrir une fonctionnalité légère semblable à une méthode. C'est juste une mauvaise pratique de déclarer les champs comme publics, mais cela ne pose aucun problème.