Comprendo i vantaggi di PROPERTIES over FIELDS, ma ho l'impressione che l'utilizzo di proprietà implementate da AUTO su proprietà implementate MANUAL non fornisca alcun vantaggio se non quello di rendere il codice un po 'più conciso per esaminarlo.Qualche motivo per utilizzare le proprietà autoattive rispetto alle proprietà implementate manualmente?
mi sento molto più comodo utilizzare:
private string _postalCode;
public string PostalCode
{
get { return _postalCode; }
set { _postalCode = value; }
}
Invece di:
public string PostalCode { get; set; }
in primo luogo perché se mai voglia di fare qualsiasi tipo di implementazione personalizzata di ottenere e impostare, devo creare la mia proprietà comunque sostenuta da un campo privato. Quindi, perché non mordere il proiettile dall'inizio e dare immediatamente tutte le proprietà a questa flessibilità, per coerenza? Questo in realtà non richiede un secondo in più, considerando che tutto ciò che devi fare in Visual Studio è fare clic sul tuo nome di campo privato e premere Ctrl + E, e il gioco è fatto. E se lo faccio manualmente, poi finisco con l'incoerenza in cui ci sono ALCUNE proprietà pubbliche create manualmente con il supporto di campi privati, e ALCUNE proprietà auto-implementate. Mi sento molto meglio con tutto ciò che è coerente in tutto, o tutto automatico o tutto manuale.
Sono solo io? Mi sto perdendo qualcosa? Mi sono sbagliato su qualcosa? Sto ponendo troppa enfasi sulla coerenza? Riesco sempre a trovare discussioni legittime sulle funzionalità di C#, e ci sono quasi sempre pro e contro su tutto, ma in questo caso, non sono riuscito a trovare nessuno a cui si consiglia di non utilizzare le proprietà implementate automaticamente.
Stai dicendo che puoi farlo anche ora - perché in futuro potresti doverlo fare.Perché perdere tempo a fare qualcosa che è soggetto ad errori (probabilmente finirai per copiare e incollare comunque), quando puoi farlo solo quando è necessario? – Rob
Grazie Rob. Il mio ragionamento è che con Visual Studio, posso creare proprietà implementate manualmente con una sola pressione extra, quindi non c'è copia/incolla. E se un giorno avrò bisogno di creare la mia implementazione, non finirò con una spaccatura tra le proprietà auto-implementate e le proprietà implementate manualmente, è 100% una o 100% l'altra. Completando il manuale fin dall'inizio, posso creare la mia implementazione in qualsiasi momento senza che alcune proprietà vengano implementate automaticamente e alcune proprietà siano manuali. Vedo il tuo punto, sicuramente. – CptSupermrkt
In questo caso, sono con te nel mantenere l'implementazione manuale al 100%. Tendo ad avere pregiudizi dopo aver incontrato molti errori di battitura con getter/setter manuali – Rob