2010年4月9日金曜日

[.NET]キャストとASの違い

C#では型をキャストする方法として、(型)によるキャストとASによるキャストがあります。
両方をキャストと表現して良いのかよくわかりませんが、どう表現してよいのかわからないので、以下、キャストと表現します。

違いがよくわからなかったので、C時代から使っているキャストを使っていました。で調べてみると、以下のような違いがあることがわかりました。

  • (型)によるキャスト:型が異なると例外
  • ASによるキャスト:型が異なるとNULL


まぁそもそもキャストすると言う行為自体がアレなんですが、ASにしておけば引数がNULLの場合と型が異なる場合をNULLかどうかで判定できます。
パフォーマンス的にどちらが良いというのは不明ですが、例外処理は基本的に重たいので、おそらくASのほうがよいと考えられます。その辺も含め、両方の処理が同じであればASのほうがいいのかもしれませんね。

0 件のコメント: