オブジェクトがあるクラスのインスタンスであるか調べる - Visual C# プログラミング
PROGRAM
オブジェクトがあるクラスのインスタンスであるか調べる
C# で、変数に格納されているオブジェクトのインスタンスが、目的のインスタンスと互換性があるかを調べるには、次のようにします。
if (typeof(DataGridView).IsInstanceOfType(obj))
{
}
このように、判定したいクラス(ここでは DataGridView クラス)の Type を取得して、その IsInstanceOfType メソッドを使って評価します。
変数 obj に格納されたインスタンスが、判定したいクラスと同じ、またはその派生クラスである場合に true を返します。
または、typeof で指定したものがインターフェイスだった場合には、obj に格納されたインスタンスが、そのインターフェイスを持っている場合に true となります。
同じように Type 型には IsSubclassOf というメソッドもありますが、こちらは、呼び出し元のクラスが、Type 型の引数で指定されたクラスから派生されている場合に限り true となります。
同じクラスをあらわしている場合には false となるので注意が必要です。
[ もどる ]