Je viens de réaliser que la construction de la propriété C # peut également être utilisée avec un modificateur d'accès privé :
private string Password { get; set; }
Bien que cela soit techniquement intéressant, je ne peux pas imaginer quand je l'utiliserais car un domaine privé implique encore moins de cérémonie :
private string _password;
et je ne peux pas imaginer quand j'aurais besoin de pouvoir obtenir en interne mais pas définir ou définir mais pas obtenir un champ privé:
private string Password { get; }
ou
private string Password { set; }
mais il y a peut-être un cas d'utilisation avec des classes imbriquées / héritées ou peut-être où un get / set peut contenir de la logique au lieu de simplement restituer la valeur de la propriété, bien que j'aurais tendance à garder les propriétés strictement simples et à laisser les méthodes explicites faire de la logique, par exemple GetEncodedPassword()
.
Quelqu'un utilise-t-il des propriétés privées en C # pour quelque raison que ce soit ou s'agit-il simplement d'une de ces constructions de code techniquement possibles, mais rarement utilisées dans le code réel?
Addenda
Jolies réponses, en les lisant, j'ai choisi ces utilisations pour les propriétés privées:
- lorsque les champs privés doivent être chargés paresseusement
- lorsque les champs privés nécessitent une logique supplémentaire ou sont des valeurs calculées
- car les champs privés peuvent être difficiles à déboguer
- afin de "se présenter un contrat"
- pour convertir / simplifier en interne une propriété exposée dans le cadre de la sérialisation
- encapsuler des variables globales à utiliser dans votre classe