Nota: questo è stato pubblicato quando stavo iniziando C #. Con la conoscenza del 2014, posso davvero dire che le proprietà automatiche sono tra le cose migliori che siano mai successe al linguaggio C #.
Sono abituato a creare le mie proprietà in C # usando un campo privato e uno pubblico:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
Ora, con .NET 3.0, abbiamo ottenuto le proprietà automatiche:
public string Title { get; set; }
So che questa è una domanda più filosofica / soggettiva, ma c'è qualche motivo per usare queste proprietà automatiche se non dal salvare cinque righe di codice per ciascun campo? La mia lamentela personale è che quelle proprietà mi nascondono cose e non sono un grande fan della magia nera.
In effetti, il campo privato nascosto non viene nemmeno visualizzato nel debugger, il che è OK dato che le funzioni get / set non fanno nulla. Ma quando voglio implementare effettivamente qualche logica getter / setter, devo usare comunque la coppia privata / pubblica.
Vedo il vantaggio di salvare un sacco di codice (uno contro sei righe) senza perdere la possibilità di cambiare la logica getter / setter in un secondo momento, ma poi posso già farlo semplicemente dichiarando un campo pubblico "Titolo stringa pubblica" senza la necessità di {get; impostato; }, risparmiando così anche più codice.
Quindi, cosa mi sto perdendo qui? Perché qualcuno dovrebbe effettivamente voler usare le proprietà automatiche?