2009-10-30 9 views
0

En ce qui concerne ma dernière question (Is there an easier way of passing a group of variables as an array)Comment puis-je faire l'utilisation du mot-clé params similaire à l'écriture à la console

je tente de transmettre des variables de chaîne à une méthode pour écrire un flux, plutôt que de faire la écrire dans chaque méthode individuelle.

L'utilisation du mot-clé params est évidemment une solution, mais en l'utilisant, je crois que je ne peux pas faire des choses comme ceci:

Write("hello {0}",var1); 

Ce qui rend le code sans assez salissante. Existe-t-il un moyen de forcer cette fonctionnalité à mes propres méthodes?

Répondre

6
void MyMethod(string format, params object[] obj) { 
    var formattedString = String.Format(format, obj); 
    // do something with it... 
} 
+0

Vous avez peut-être raté la question? Ce que j'aimerais pouvoir faire, c'est passer des arguments dans une chaîne quand on passe le tout en argument à une autre méthode. Tout ce que je peux faire pour le moment est le suivant: Write ("Hello", var1); qui, lorsqu'il s'agit de longues chaînes, devient très salissant. J'aimerais pouvoir faire ceci: Écrire ("Hello {0}", var1); – George

+0

George: Je ne vois pas ce que tu ne peux pas faire maintenant. La sortie de 'String.Format' est une chaîne avec' {0} ',' {1} 'remplacée par la valeur de l'argument respectif. –

+0

Ignorer le commentaire, je viens de comprendre ce que vous avez fait: V Merci. – George

1

Une méthode qui a le mot-clé params peut être passé un tableau explicite ou un tableau en ligne.

Par conséquent, vous pouvez écrire:

public static void Write(params string[] stringsToWrite) { 
    //... 
    writer.WriteLine("Hello {0} {1} {2}", stringsToWrite); 
    //... 
} 

EDIT Votre question est claire. Si vous demandez si un paramètre de tableau params peut avoir une seule valeur, la réponse est oui.

Par exemple:

Write("myString"); 

La raison pour laquelle beaucoup de params méthodes .Net ont distinctes qui prennent des surcharges un seul paramètre est d'éviter de créer un tableau pour des raisons d'optimisation.