1. ホーム
  2. .net

.netでArray TypeからArray Item Typeを取得する方法

2023-11-10 16:51:23

質問

例えば System.String[] 型オブジェクトがあるとします。この型オブジェクトを照会して、それが配列であるかどうかを判断することができます。

Type t1 = typeof(System.String[]);
bool isAnArray = t1.IsArray; // should be true

しかし、t1から配列のアイテムの型オブジェクトを取得するにはどうすればよいのでしょうか。

Type t2 = ....; // should be typeof(System.String)

どのように解決するのですか?

インスタンスメソッド Type.GetElementType を使用することができます。

Type t2 = t1.GetElementType();

現在のTypeが配列やポインタでない場合、あるいは参照渡しでない場合、あるいは汎用型や汎用メソッドの定義における型パラメータを表している場合はNULLを、現在の配列やポインタ、参照型によって包含または参照されているオブジェクトの型を [Returns] します。