3流プログラマのメモ書き

元開発職→現社内SEの三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(.net)紛らわしいTypeofとかいう単語

VB.NetにもC#にもtypeofという予約されてる語がありますが、挙動はまったく異なります。

C#,VB.Net両方やってるとたまに迷うので一応メモ。

 

VB.Netのtypeof

構文: TypeOf <名前> Is <型>

<名前>のランタイム型に<型>との互換性があるかどうかを判断します。
互換性があれば(キャスト可能)True、そうでなければFalseを返します。
 あるオブジェクトがある型にキャストできるかどうかとかを調べるときに使うことが多いと思います。

(ちなみにVB.NetのTypeOf .. Is ..と同じことをC#でさせたい時は is キーワードを用いるようです。要はTypeOfがいらないだけ)

 

 

C#のtypeof

構文: typeof(<型>)

指定された<型>のSystem.Typeオブジェクトを返します。
実行時のオブジェクトからのSystem.Type取得はGetTypeメソッドを使用します。例:obj.GetType()

ある型の詳しい情報(型名とか)とか取りたい時に使うことが多いと思います。

(ちなみにVB.Netで同じことをさせたい時はGetType()を使うようです。)

 

ということでVBC#の変換表っぽいものないかなーと探してたらありました。作ってくれた方に感謝です。

VB.NETC#変換表http://dobon.net/vb/dotnet/vb2cs/vb2cstable.html

C# から VB.NET への変換http://www.oyamafamily.com/public/prg/lang/vb_lang01.html