2008年2月14日木曜日

[.NET]C#のparams

C#2.0には、可変長の引数をサポートする、paramsというキーワードが追加されました。
実装は以下のようなかんじ。

public void TestFunc(string p1params 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();
}


呼び出し側はこんなかんじ

TestFunc("p1""p2-1""p2-2""p2-3");


paramsは引数の最後という条件はありますが、実装側は、p2が配列として受け取れます。

で、気になったのですが、たとえば

string[] p2 ={ "p2-1""p2-2""p2-3" };
TestFunc("p1""p2-0"p2);


のような呼び出しが可能か?ということでやってみました。結果はコンパイルエラー。
・・・えぇまぁせっかく実験したので、blogに書いてみました。ただそれだけです。

0 件のコメント: