重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

C#について質問させていただきます。
以下のようにすればそれぞれ一次元配列と二次元配列を格納出来ますが
同時に一つの引数に収めることは無理なのでしょうか?

   public static void Join(string[] Ary_str){ 本文 }
   public static void Join(string[ , ] Ary_str){ 本文 }

そのために、例えば以下のようにしたとします。

   public static void Join(object Ary_obj){ 本文 }

こうすれば一次元でも二次元でも格納出来ますが
格納された値が何次元配列なのか確認するために

   Ary_obj.Rank

としてもエラーになってしまいます。
(1)Objectに格納した値が何次元配列なのか確認する方法か
(2)一次元でも二次元でも格納できる引数の指定方法
をご存じの方、ぜひお教え願います。><

A 回答 (2件)

Ary_objをArrayにキャストしてからRankプロパティを調べると配列の次元を確認できます。



public static void Join(object Ary_obj){
 Array ary = Ary_obj as Array;
 if(ary == null){ //Ary_objがArrayにキャストできない場合はエラーとする
  throw new ArgumentException();
 }else{
  int rank = ary.Rank;
 }
}

が、可能ならオーバーロードを使用することを検討すべきです。

この回答への補足

やはりオーバーロードが正道なのですね。
詳しいご回答ありがとうございます。

補足日時:2014/04/16 12:52
    • good
    • 0

オーバーロードできないんだっけ?

    • good
    • 0
この回答へのお礼

オーバーロードの使用を検討したいと思います。
ご回答ありがとうございます。

お礼日時:2014/04/16 12:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!