statico o non statico, questa è la domanda? [duplicare]

0

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.

    
posta Mark 16.06.2014 - 11:48
fonte

1 risposta

1

Soggettivamente, mi piace il metodo di istanza non statico, sembra più naturale. YMMV.

Oggettivamente, la forma statica richiede un parametro aggiuntivo che sembra ridondante, cioè

myStudent.medianOfMark()

vs.

student.medianOfMark(myStudent)

Non sono un mago C # quindi scusami eventuali dettagli errati sulla sintassi. Inoltre, come altri hanno commentato, ci sono altri problemi con i nomi, l'uso di float, ecc ...

    
risposta data 16.06.2014 - 19:23
fonte

Leggi altre domande sui tag