2011-08-11 16 views
4

generic型の配列型を受け取ることがある汎用ラッパークラスがあります。私は、指定されたジェネリック型がIsArrayプロパティによって配列であるかどうかを知ることができます。しかし、コード内の配列要素の型を取得できる方法はありますか?私は、Typeオブジェクトの公開されたすべての属性を見て、それを見ていないだけです。generic型の配列内の要素の型の取得

例:あなたはType.GetElementType方法を探している

public class wrap<T> 
{ 
    public void doSomething() 
    { 
     if (typeof(T).IsArray) 
      Type arrayElementType = typeof(T).??? ; 
    } 
} 
     // typeof(T) when an array is "int[]" 
     // typeof(T).BaseType is "System.Array" 
     // how to get "int" out of this? 

答えて

4

。派生クラスでオーバーライド

、現在の配列、ポインタまたは参照 タイプによって包含または参照されるオブジェクト のタイプを返します。

Type arrayElementType = typeof(T).GetElementType(); 
+0

うん、そう、私はそれがばかばかしいほど明白なものになるだろう知っていました。私の一時変数もほぼ同じ名前でした。答えをありがとう! – Devoramadoomalama

+0

@Devoramadoomalama:乾杯 - 私はかなりのためにこれを探して覚えています。 – Ani

関連する問題