オブジェクトがあるクラスのインスタンスであるか調べる - Visual C# プログラミング

PROGRAM


オブジェクトがあるクラスのインスタンスであるか調べる

C# で、変数に格納されているオブジェクトのインスタンスが、目的のインスタンスと互換性があるかを調べるには、次のようにします。

if (typeof(DataGridView).IsInstanceOfType(obj))

{

}

このように、判定したいクラス(ここでは DataGridView クラス)の Type を取得して、その IsInstanceOfType メソッドを使って評価します。

変数 obj に格納されたインスタンスが、判定したいクラスと同じ、またはその派生クラスである場合に true を返します。

または、typeof で指定したものがインターフェイスだった場合には、obj に格納されたインスタンスが、そのインターフェイスを持っている場合に true となります。

 

同じように Type 型には IsSubclassOf というメソッドもありますが、こちらは、呼び出し元のクラスが、Type 型の引数で指定されたクラスから派生されている場合に限り true となります。

同じクラスをあらわしている場合には false となるので注意が必要です。


[ もどる ]