Ho una proprietà pubblica con un get e set accessor. Associato a questa proprietà è un campo privato.
È consigliabile fare riferimento a questi valori in altre parti di un codice di classi per utilizzare il campo privato o la proprietà pubblica esposta. Sebbene io abbia rilasciato ho creato un campo bool privato personFieldSpecified quando probabilmente non ne avevo bisogno, l'ho fatto per spiegare meglio la mia domanda.
private SimplePerson personField;
private bool personFieldSpecified;
public SimplePerson Person
{
get
{
if (personField == null)
personField = new SimplePerson();
return personField;
}
set
{
personField = value;
// Q) Should I access the public property here or the private field
PersonSpecified = true;
}
}
public bool PersonSpecified
{
get
{
return personFieldSpecified;
}
set
{
personFieldSpecified = value;
}
}
Poiché sono consapevole dell'implementazione interna del set so che influirà sul risultato finale se lo imposto, tuttavia mi chiedo quale sia la migliore pratica da fare per la manutenzione a lungo termine. Questo potrebbe valere anche per i metodi della mia classe!
Quali sarebbero le ragioni per scegliere un metodo particolare rispetto all'altro. Dipende da cosa sta facendo la proprietà stessa, nel qual caso devo avere conoscenza del suo funzionamento interno o si tratta di progettare?