Questa è una domanda puramente ipotetica.
Dire che creo un metodo di classe che non contiene riferimenti a variabili di istanza o altre risorse. Ad esempio (C #):
protected string FormatColumn(string value, int width)
{
return value.Trim().PadLeft(width);
}
Per quanto posso vedere, non c'è assolutamente alcun motivo per cui questo metodo non possa essere dichiarato statico:
- Utilizza solo variabili del scope di metodo.
- Non
override
un metodo di classe base. - Non è
virtual
oabstract
.
Le mie domande sono:
C'è qualche vantaggio nel chiamare un metodo statico su un metodo di istanza?
In tal caso, perché il compilatore non lo converte implicitamente in un metodo statico?
Sono sicuro di aver perso qualche punto chiave qui. Qualche idea?