C#ではこれを行うことができます:
_foo = string.Format("{0} {1} {2} {3} ...", "aa", "bb", "cc" ...);
_
このメソッドFormat()
は、文字列のフォーマット方法の最初のパラメーターである無限パラメーターを受け入れ、残りは文字列に配置される値です。
今日、文字列のセットを取得してテストしなければならない状況になり、この言語機能を思い出しましたが、手がかりがありませんでした。数回失敗したWeb検索の結果、配列を取得する方が賢明であることに気づきました。
Q:無限パラメーターを受け入れる関数を作成するにはどうすればよいですか?そして、それをどのように使用しますか?
params
キーワードを使用します。
次に例を示します。
public int SumThemAll(params int[] numbers)
{
return numbers.Sum();
}
public void SumThemAllAndPrintInString(string s, params int[] numbers)
{
Console.WriteLine(string.Format(s, SumThemAll(numbers)));
}
public void MyFunction()
{
int result = SumThemAll(2, 3, 4, 42);
SumThemAllAndPrintInString("The result is: {0}", 1, 2, 3);
}
コードはさまざまなことを示しています。まず、params
キーワードを使用した引数は常に最後でなければなりません(関数ごとに1つしか存在できません)。さらに、params
引数を取る関数を2つの方法で呼び出すことができます。最初の方法は、MyFunction
の最初の行に示されています。ここで、各数値は単一の引数として追加されます。ただし、SumThemAllAndPrintInString
がSumThemAll
と呼ばれるint[]
を使用してnumbers
を呼び出すように、配列を使用して呼び出すこともできます。
Paramsキーワードを使用します。使用法:
public void DoSomething(int someValue, params string[] values)
{
foreach (string value in values)
Console.WriteLine(value);
}
Paramsキーワードを使用するパラメーターは常に最後に来ます。
いくつかのメモ。
パラメータは、string []やobject []のような配列型でマークする必要があります。
Paramsでマークされたパラメーターは、メソッドの最後の引数でなければなりません。 Foo(string input1、object [] items)など。
params
キーワードを使用します。例えば
static void Main(params string[] args)
{
foreach (string arg in args)
{
Console.WriteLine(arg);
}
}
params キーワードを使用してこれを実現できます。
小さな例:
public void AddItems(params string[] items)
{
foreach (string item in items)
{
// Do Your Magic
}
}
public static void TestStrings(params string[] stringsList)
{
foreach (string s in stringsList){ }
// your logic here
}
public string Format(params string[] value)
{
// implementation
}
Paramsキーワードが使用されている
function void MyFunction(string format, params object[] parameters) {
}
Object []の代わりに、好きなタイプを使用できます。 params引数は常に行の最後でなければなりません。