Acabei de perceber que a construção da propriedade C # também pode ser usada com um modificador de acesso privado :
private string Password { get; set; }
Embora isso seja tecnicamente interessante, não consigo imaginar quando o usaria, pois um campo privado envolve ainda menos cerimônia :
private string _password;
e não consigo imaginar quando precisaria obter internamente, mas não definir ou definir, mas não obter um campo privado:
private string Password { get; }
ou
private string Password { set; }
mas talvez exista um caso de uso com classes aninhadas / herdadas ou talvez um get / set possa conter lógica em vez de apenas devolver o valor da propriedade, embora eu tenderia a manter as propriedades estritamente simples e permitir que métodos explícitos fizessem qualquer lógica, por exemplo GetEncodedPassword()
.
Alguém usa propriedades privadas em C # por qualquer motivo ou é apenas uma daquelas construções tecnicamente possíveis, embora raramente usadas em código real?
Termo aditivo
Boas respostas, lendo-as, selecionei esses usos para propriedades particulares:
- quando campos particulares precisam ser carregados lentamente
- quando campos particulares precisam de lógica extra ou são valores calculados
- pois os campos particulares podem ser difíceis de depurar
- para "apresentar um contrato a si mesmo"
- converter / simplificar internamente uma propriedade exposta como parte da serialização
- agrupando variáveis globais para serem usadas dentro da sua classe