Ho appena realizzato che il costrutto della proprietà C # può essere utilizzato anche con un modificatore di accesso privato :
private string Password { get; set; }
Anche se questo è tecnicamente interessante, non riesco a immaginare quando lo userei dal momento che un campo privato prevede anche meno cerimonie :
private string _password;
e non riesco a immaginare quando avrei mai bisogno di essere in grado di ottenere internamente ma non impostare o impostare ma non ottenere un campo privato:
private string Password { get; }
o
private string Password { set; }
ma forse c'è un caso d'uso con classi nidificate / ereditate o forse in cui un get / set potrebbe contenere la logica invece di restituire semplicemente il valore della proprietà, anche se tenderei a mantenere le proprietà rigorosamente semplici e permettere ai metodi espliciti di fare qualsiasi logica, es GetEncodedPassword()
.
Qualcuno usa le proprietà private in C # per qualche motivo o è solo uno di quei costrutti tecnicamente possibili, ma raramente usati nel codice attuale?
appendice
Belle risposte, leggendole ho abbattuto questi usi per proprietà private:
- quando i campi privati devono essere caricati pigramente
- quando i campi privati richiedono logica aggiuntiva o sono valori calcolati
- poiché i campi privati possono essere difficili da eseguire il debug
- per "presentare un contratto a te stesso"
- per convertire / semplificare internamente una proprietà esposta come parte della serializzazione
- a capo di variabili globali da utilizzare all'interno della tua classe