.Net(VB、C#)における紛らわしい予約語「Typeof」
VB.NetにもC#にもtypeofという予約語があるが、挙動はまったく異なる。
VB.Netのtypeof
1 | TypeOf <名前> Is <型> |
<名前>のランタイム型に<型>との互換性があるかどうかを判断する。
互換性があればTrue(キャスト可能)、なければFalse(キャスト不可能)を返す。
あるオブジェクトがある型にキャスト可能か調査する際に使用する。
尚、C#で同様の動作をさせたい場合、isキーワードを使用する。(TypeOfは不要)
C#のtypeof
1 | typeof(<型>) |
指定された<型>のSystem.Typeオブジェクトを返す。
実行時オブジェクトからのSystem.Type取得はGetTypeメソッドを使用する。(例:obj.GetType())
ある型の詳しい情報(型名等)を取得したい場合に使用する。
尚、VB.Netで同様の動作をさせたい場合、GetType()を使用する。