[C#] Type型、typeof、GetType

objectの型についての情報を得るmethodはGetType()。
System.ObjectクラスがGetTypeを実装しているので、各objectは、

Type typeObjVariable = obj.GetType();

のようにobjの型を得ることができる。
GetType()の型は、「Typeというtype」になる。
C#にはType型を返す演算子 typeof が定義されている。typeofの引数はclassやstruct,enumなどなどの型そのもの。

Type typeExtendedDateClass = typeof(ExtendedDate);

Type型には “==” が定義されている。objがExtendedDateのobjectの場合、以下はtrue。

obj.GetType() == typeof(ExtendedDate);

あるclassと、そのclassのbase classのTypeを比較するとfalseとなる。以下でobjがDateをbase classとするExtendedDateのobjectだとすると、式の値はfalse。

obj.GetType() == typeof(Date); // objが子クラス、Dateはbase class
広告
%d人のブロガーが「いいね」をつけました。