La versione abbreviata è quella che utilizza sempre le proprietà al posto dei campi public
(o, addirittura, anche protected
) è stata una scelta di progettazione fondamentale in .NET fin dall'inizio.
La versione leggermente più lunga è che l'aggiunta del supporto per i campi public
aggiungerebbe complessità al framework di associazione dei dati (a prescindere da quello a cui ci si sta riferendo). I campi inoltre non hanno alcun tipo di supporto per la notifica dei cambiamenti, che è un aspetto abbastanza importante dell'associazione dei dati (almeno in un ambiente con stato come lo sviluppo di Winforms). Anche a livello di recupero e impostazione di valori, campi e proprietà sono diversi; mentre la sintassi in VB.NET o C# per il recupero o l'impostazione del valore di una proprietà è (in base alla progettazione) uguale a quella di un campo, il meccanismo utilizzato per farlo in uno scenario programmatico come l'associazione dati è diverso per le proprietà vs. campi.
Alla fine, tutto ciò significa solo che ci vorrebbe più lavoro per aggiungere il supporto per i campi pubblici a qualsiasi scenario di associazione dati, quindi dal momento che si tratta di un anti-pattern comunque questo lavoro non è fatto.
fonte
2014-12-20 17:02:57
I * vorrei * dire che c'è una limitazione tecnica su di essi in qualcosa come Winforms o l'associazione dati MVVM, poiché entrambi fanno affidamento sugli eventi attivati quando i valori cambiano per aggiornare l'interfaccia utente. Tale notifica non è possibile con i campi. –