本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
C#で定義された変数から、利用された型(Class)が何なのかを調べるときに利用できるコードです。通常の変数の場合はもちろんですが、Genericクラスで、Collectionになっている型も調べる事ができます。
通常変数の型を調べたい時。
変数 obj(インスタンス)
MyClass 比較したい型(クラス)
if(obj.GetType() == typeof(MyClass)
これでobjが、どのクラスで初期化されたか、インスタンス化されたかが分かります。
では、IEnumerableで定義された変数の場合はどうやって
Objが、IEnumerableで定義されコレクションになっている時にその元になるTの型は何なんだ?Tで利用されているクラスは何だろう?と調べたい時
定義された変数
IEnumerable collection
比較したい型(クラス)
MyClass
例1
if (collection.GetType().GetProperty(“Item”).PropertyType == typeof(MyClass))
例2
if (collection.GetType().GetGenericArguments()[0] == typeof(MyClass))
この方法で、IEnumerableコレクションの元になるクラス・型を調べる事ができます。