In un progetto, ho trovato un codice come questo:
class SomeClass
{
private SomeType _someField;
public SomeType SomeField
{
get { return _someField; }
set { _someField = value; }
}
protected virtual void SomeMethod(/*...., */SomeType someVar)
{
}
private void SomeAnotherMethod()
{
//.............
SomeMethod(_someField);
//.............
}
};
Come posso convincere i miei compagni di squadra che si tratta di un codice errato?
Credo che questa sia una complicazione inutile. Perché passare una variabile membro come parametro del metodo se si ha già accesso ad essa? Questa è anche una violazione dell'incapsulamento.
Vedi altri problemi con questo codice?