型を覚えるときに必ずセットで出てくる型変換(キャスト)の話です。実は、型変換はC#とVB.NETでだいぶ違います。C#は変換方法がだいたい決まっているのですが、VB.NETでは変換方法がありすぎて、プログラマーによってまちまちなのです。そのため初学者はどれを使っていいのか迷ってしまいます。今回はどの型変換をどの場面で使えば良いのかを考えてみたいと思います。先に言っておくと実は明確なルールというものは無く、あくまで私個人の見解となりますので、一つの意見としてとらえて下さい。できそこないのDirectCastいきなりのVBディスリですが、このDirectCastがこの問題の半分くらいを占めていると言って過言ではありません。C#でこれに対応するのが()による型変換ですが、挙動が全く異なります。違いは以下の通りです。高速に処理される適用範囲の●印の2つが重要で、例えばInteger型をDecimal型に変換するようなことはDirectCastでは出来ないのです。Decimal)これはとても使いにくいです。処理自体はC#の()と同様で非常に高速で処理されますので多用したいのが山々ですが、結局こういった制約があるので使う場面は限られてしまいます。型変換失敗時にNullを返すC#はas演算子が相当しますが、VB.NETではTryCastがほぼ同じ挙動となります。エラー時はnullを返しますので、必然的に参照型だけ使用可能となります。・参照型なぜかVB.NETはnull許容型は適用外。C#の場合は()よりasの方が高速に処理されますので、参照型であれば優先的に使用します。逆にVB.NETの場合はDirectCastの方が高速に処理されるので、はっきりってTryCastを利用する場面はあまりありません。VB.NET独自の型変換関数VB6でお馴染みCIntやCStrと同等処理となります。C#の()とほぼ同じ挙動(一部異なる)となりますが、速度は遅く、また数値型とString型が相互変換可能ということより、VB.NETだけの独自の仕組みと考えた方がよさそうです。CDec(a)VB独自関数といいつつ、前述したDirectCastが使えない場面では使わざるを得ないのが現状です。値型の変換はこのあとに出てくるParse(TryParse)を利用した方がよいでしょう。暗黙的に型付けする変数のことを型推論と言います。C#はvarキー...2019-04-16型変換は何を使う?(その2)型変換は何を使う?(その1)の続きです。値型がnullを許容しないことは分かりました。アプリケ...2019-03-10null許容型(C#とVB.NETの違い)参照型はnullを許容していますが、値型はどうでしょうか。Javascriptからクリップボードを設定はてなブログをはじめよう!sasaki816さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。