型変換

サンプルコード

Sub Main()
  Dim obj As Object = 100
  Dim i As Integer = CType(Obj, i)
End Sub

VB.NETでは、Option StrictをOffにしておけば暗黙的な型変換が行われます。しかし、パフォーマンス向上および型の誤変換防止の為、Option StrictをOnにして、明示的に型変換を行った方が良いでしょう。

また、CTypeの代わりに、参照変換等であればDirectCastおよびTryCastを使うことができ、ます。パフォーマンスに優れています。使用方法はCTypeと同じです。

DirectCastとTryCastの違いは、TryCastは変換ができない場合にエラーを吐かずにNothingを返します。


変換可能かを確認する

サンプルコード

Class test1
    Public aa As Integer
End Class

Class test2
    Inherits test1
    Public bb As Integer
End Class

Sub Main()
  Dim obj2 As New test2()
  '変換可能であれば変換する
  If TypeOf obj2 Is test1 Then
    Dim obj1 As test1 = CType(obj2, test1)
  End If

  '若しくはこう
  Dim obj2 As New test2()
  '変換可能であれば変換する
  Dim obj1 as test1 = TryCast(obj2,test1) 
  If Obj1 IsNot Nothing Then
    ConSole.writeLine("変換成功")
 End If
End Sub