型の比較

ある変数の型を比較する場合、Is演算子やGetTypeとtypeofを用いた方法がある。

ただし、Is演算子は変数に格納されたオブジェクトの型が指定の型に変換可能な

場合(継承関係)にTrueを返す為、継承関係にあるクラス同士で厳密なチェックを行いたい場合は、GetTypeとtypeofにて比較を行うべき。

 

■以下の様なクラスがある場合

public class BaseClass { }
public class subClass: BaseClass { }

 

/// subClassのインスタンスを生成

BaseClass test = new subClass();


/// isによる型比較
if (test is BaseClass){} ⇒True

 

/// GetTypeとtypeofによる型比較

test.GetType() == typeof(BaseClass) ⇒False