Per confronti / valutazioni di oggetti della stessa classe (e altri scopi), è meglio definire una funzione statica o non statica (si tratta della funzione "dinamica" per caso?)?
Codice di esempio:
class student
{
internal decimal medianOfMarks()
{
int count = 0;
decimal sum = 0;
foreach(float mark in reportCard)
{
counter++;
sum += mark;
}
return sum / count;
}
**OR**
internal static decimal medianOfMark(student delinquent)
{
[same logic]
}
}
Non consideriamo di rendere la funzione una proprietà, sebbene senza parametri, dal momento che mi piacerebbe una risposta applicabile anche alle funzioni parametrizzate.
Quali sono gli argomenti pro / contro ciascun approccio?
Quali fattori decisionali esistono?
Ci ho già pensato io stesso, ma non voglio influenzare la discussione con la mia opinione.