Esiste un qualche tipo di convenzione in C# (o qualsiasi linguaggio orientato agli oggetti che supporti l'overloading dei metodi) per la seguente situazione?Esiste una convenzione per l'ordine dei parametri di sovraccarico del metodo C#?
Diciamo che ho un metodo foo:
public void Foo(int a){//does stuff}
Ma in realtà ho 3 metodi pippo:
public void Foo(int a){}
public void Foo(int a, double b){}
public void Foo(float c, int a, double b){}
v'è una convenzione che indica se l'ordine dei parametri questioni in un metodo sovraccarico? Si noti come il terzo metodo non presenta un'evidente progressione logica (a, b, c).
Se 'a' è sempre richiesto, e' b' è richiesto se 'c' viene fornito, farei qualcosa di simile a questo:' public void Foo (int a, double? B = null, float? C = null) '- assumendo che la tua logica sia la stessa. – zimdanen
@zimdanen, non vi è alcun motivo per rendere i valori validi n. – Maxwe11
@Jupiter: l'idea è di utilizzarla come alternativa ai sovraccarichi. Funziona bene quando ci sono più parametri che sono tutti indipendenti: si evita di raddoppiare il numero di sovraccarichi ogni volta che ne aggiungi un altro. (Certo, una volta arrivati a circa 5 parametri dovresti cercare con attenzione se questo sia un design appropriato comunque ...) –