実装は以下のようなかんじ。
public void TestFunc(string p1, params string[] p2)
{
StringBuilder sb = new StringBuilder();
sb.Append("p1=").AppendLine(p1);
foreach(string sp2 in p2){
sb.Append("p2=").AppendLine(sp2);
}
textBox1.Text = sb.ToString();
}
{
StringBuilder sb = new StringBuilder();
sb.Append("p1=").AppendLine(p1);
foreach(string sp2 in p2){
sb.Append("p2=").AppendLine(sp2);
}
textBox1.Text = sb.ToString();
}
呼び出し側はこんなかんじ
TestFunc("p1", "p2-1", "p2-2", "p2-3");
paramsは引数の最後という条件はありますが、実装側は、p2が配列として受け取れます。
で、気になったのですが、たとえば
string[] p2 ={ "p2-1", "p2-2", "p2-3" };
TestFunc("p1", "p2-0", p2);
TestFunc("p1", "p2-0", p2);
のような呼び出しが可能か?ということでやってみました。結果はコンパイルエラー。
・・・えぇまぁせっかく実験したので、blogに書いてみました。ただそれだけです。
0 件のコメント:
コメントを投稿