Me acabo de dar cuenta de que la construcción de la propiedad C # también se puede usar con un modificador de acceso privado :
private string Password { get; set; }
Aunque esto es técnicamente interesante, no puedo imaginar cuándo lo usaría, ya que un campo privado implica aún menos ceremonia :
private string _password;
y no puedo imaginar cuándo necesitaría poder obtener internamente pero no establecer o establecer pero no obtener un campo privado:
private string Password { get; }
o
private string Password { set; }
pero tal vez haya un caso de uso con clases anidadas / heredadas o tal vez donde un get / set pueda contener lógica en lugar de simplemente devolver el valor de la propiedad, aunque tendería a mantener las propiedades estrictamente simples y dejar que los métodos explícitos hagan cualquier lógica, por ej GetEncodedPassword()
.
¿Alguien usa propiedades privadas en C # por alguna razón o es solo una de esas construcciones de código técnicamente posibles pero raramente usadas en el código real?
Apéndice
Buenas respuestas, al leerlas, seleccioné estos usos para propiedades privadas:
- cuando los campos privados necesitan ser cargados perezosamente
- cuando los campos privados necesitan lógica adicional o son valores calculados
- ya que los campos privados pueden ser difíciles de depurar
- para "presentar un contrato a ti mismo"
- convertir / simplificar internamente una propiedad expuesta como parte de la serialización
- envolviendo variables globales para ser utilizadas dentro de su clase