C # supporta un numero variabile di argomenti?
Se sì, in che modo C # supporta il numero variabile di argomenti?
Quali sono gli esempi?
In che modo sono utili gli argomenti variabili?
EDIT 1 : quali sono le restrizioni su di esso?
EDIT 2 : La domanda non riguarda il parametro opzionale Ma parametro variabile
Sì. L’esempio classico è il params object[] args
:
//Allows to pass in any number and types of parameters public static void Program(params object[] args)
Un tipico caso d’uso passerebbe i parametri in un ambiente a riga di comando a un programma, dove li si passa come stringhe. Il programma deve quindi convalidarli e assegnarli correttamente.
restrizioni:
params
per metodo EDIT: Dopo aver letto le tue modifiche, ho fatto il mio. La parte qui sotto riguarda anche i metodi per ottenere un numero variabile di argomenti, ma penso che tu stavi davvero cercando il modo params
.
Anche uno dei più classici, è chiamato overloading di metodo . Probabilmente li hai già usati molto:
//both methods have the same name and depending on wether you pass in a parameter //or not, the first or the second is used. public static void SayHello() { Console.WriteLine("Hello"); } public static void SayHello(string message) { Console.WriteLine(message); }
Ultimo ma non meno importante il più entusiasmante: Argomenti opzionali
//this time we specify a default value for the parameter message //you now can call both, the method with parameter and the method without. public static void SayHello(string message = "Hello") { Console.WriteLine(message); }
C # supporta matrici di parametri a lunghezza variabile usando la parola chiave params
.
Ecco un esempio.
public static void UseParams(params int[] list) { for (int i = 0; i < list.Length; i++) { Console.Write(list[i] + " "); } Console.WriteLine(); }
Ci sono più informazioni qui .
Sì, parametri :
public void SomeMethod(params object[] args)
params deve essere l’ultimo argomento e può essere di qualsiasi tipo. Non sono sicuro se deve essere un array o solo un object IEnumerable.
Immagino tu intenda un numero variabile di parametri del metodo . Se è così:
void DoSomething(params double[] parms)
(O mescolato con parametri fissi)
void DoSomething(string param1, int param2, params double[] otherParams)
restrizioni:
Questo è tutto ciò che riesco a pensare al momento anche se potrebbero essercene altri. Controlla la documentazione per maggiori informazioni.