Molte persone seguono il seguente paradigma:
proprietà sono usate solo per esporre i campi, quindi dovrebbero essere solo pubbliche . Esistono numerose eccezioni a questa regola (caricamento lazy, ad esempio).
Con le proprietà automatiche, ho trovato che non è possibile usare mai i campi. Se ho bisogno che i miei campi siano molto semplici, uso solo le proprietà auto
private int? ThisIsMoreOrLessAField { get; set; } // Actually a private property
Che cosa è generalmente preferito? Ad alcune persone piacciono i campi perché se qualcuno decide di cambiare un campo e renderlo pubblico, è ovviamente un codice cattivo e facilmente riconoscibile nella revisione del codice. È anche facile guardare i campi e riconosciuto che è privato per la classe. Se le tue proprietà possono essere private, questo rompe quel paradigma. Devi fare ulteriori controlli per determinare se è pubblico o privato.
Sto attraversando un periodo difficile per convincermi in ogni caso.