Se ho un metodo che riceve un valore come parametro e lo memorizza in un campo per un utilizzo successivo, ma poi continua a usare quel valore - perché dovrei usare il parametro invece del campo?
private RailState _railState;
public void UseParameter(RailState railState)
{
_railState = railState;
railState.SetActive();
}
public void UseField(RailState railState)
{
_railState = railState;
_railState.SetActive();
}
Per quanto posso vedere, un argomento per l'utilizzo di un parametro è che se la classe verrà modificata in seguito e il valore verrà utilizzato solo in quel metodo, un IDE decente mi informerà che il campo non viene mai letto e quindi inutile.
Un argomento per l'utilizzo del campo è che l'utilizzo del parametro non funzionerà per i tipi di valore. Mentre questo è ovvio e intuitivo per i tipi di base come i numeri, potrebbe portare a sorprese con strutture inaspettate.
Tuttavia, ci sono altri argomenti - in un modo o nell'altro - che mi manca?