C# Funzione con un numero variabile di argomenti
Link sponsorizzati
Molte volte può ritornare utile scrivere una funzione che abbia un numero variabile di argomenti. La cose è fattibile in molti linguaggi, il C# è tra questi.
Immaginiamo di dover scrivere una funzione che ci permetta di sommare n interi. Se uno ne scrive una per sommare due interi farebbe myFunction(int, int), per 3 myFunction(int, int, int). Ma per n? Fortunatamente il C# mette a disposizione una keyword, di nome params, che ci permette di specificare un numero di parametri arbitrario per quella funzione del tipo definito in seguito. Detto in codice si traduce così
{
int s=0;
for (int i = 0; i < n.Length; i++)
s += n[i];
return s;
}
Come vedete abbiamo definito una funzione che accetta n parametri interi. I vari numeri vengono messi all’interno dell’array. Questo permette di chiamare la funzione come mySum(2, 3) oppure mySum(1, 3, 5, 2, 65, 21), oppure ancora mySum(). Insomma, come vogliamo.
Link sponsorizzati
Alla luce di questo fatto, uno, potrebbe considerare di passare alla funzione parametri eterogenei, e non omogenei come in questo caso. Questo è fattibile passando un tipo generico come Object. Cioè, facendo una funzione tipo private double myFun(params Object[] n) { ... }, uno potrebbe chiamarla benissimo con qualsiasi tipo di parametro myFun(1, "Ciao", new Button()) oppure myFun(new Class1(), new Class2()) e via discurrendo.
Link sponsorizzati

