- - PR -
C#の可変長引数に配列
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-06-27 15:00
C#で可変長引数(params)に配列を渡す方法で、こまっております。。
public MyResponse Call( string func, params object[] param ) このようなメソッドで、例えば obj.Call( "test", "ABC", 123, otherobj ); というように、可変長のパラメータ付きで呼び出します。 この、上の例のような場合だと問題ないのですが・・・ 可変長パラメータとして、一つの配列を渡そうとすると、 string[] s = new string[] { "ABC", "DEF" }; obj.Call( "test", s ); 実質、 obj.Call( "test", "ABC", "DEF" ); という呼び出しと等価になってしまうのです。 (即ち、paramをforeachで回すと、stringの"ABC"と"DEF"がとれてしまう) これを、二つのstringではなく、一つのstring[] として渡す方法ってないのでしょうか?? ちなみに、 string[] s = new string[] { "ABC", "DEF" }; obj.Call( "test", s, null ); というように、もう1個パラメータを追加すると、string[]として受け取れるのですが、 これでは都合がよくないので・・・。 [ メッセージ編集済み 編集者: YAMANEKO 編集日時 2008-06-27 15:07 ] | ||||
|
投稿日時: 2008-06-27 15:21
そういう風にできています
http://msdn.microsoft.com/ja-jp/library/aa645765.aspx ということで、 obj.Call( "test", (object)s ); | ||||
|
投稿日時: 2008-06-27 15:27
でどうでしょうか? | ||||
|
投稿日時: 2008-06-27 15:35
べるさん、おださん、ありがとうございます!
なるほど、そういう仕様だったのですね。 objectにキャストすることで、意図したとおりに一つのstring[]を渡せました。 ありがとうございました! |
1