VB.NET Integerに変換可能かどうかを判定する
VB.NET
でInteger
に変換可能かどうかを判定するには、TryParse
を使用します。
以下の例ではtarget
という変数がInteger
に変換可能かどうかを判定しています。
Dim i As Integer
If Integer.TryParse(target.ToString, i) Then
'targetはIntegerに変換可能
Return True
Else
'targetはIntegerに変換不可
Return False
End If
Integer.TryParse(チェック対象の変数, 変換された値)
の形式で指定します。
変換可能な場合はTrue
、変換不可な場合はFalse
が返却されます。
通常、型変換が可能かどうか判定する場合は、型変換も同時に行うことが多いです。
Integer.TryParse
の第2引数には、Integer
型に変換した値が格納されます。
以下のようにすれば、Integer
型に変換する汎用的なファンクションになります。
Public Function ConvertToInteger(target As Object) As Integer
Dim i As Integer
If Integer.TryParse(target.ToString, i) Then
Return i
Else
Return 0
End If
End Function
注意点
チェック対象の変数target
はToString
で文字列型に変換する必要があります。
そのため、場合によって胃はDBNull
やNothing
の判定も含める必要があります。
Public Function ConvertToInteger(target As Object) As Integer
If target Is Nothing Then Return 0
If target Is DBNull.Value Then Return 0
Dim i As Integer
If Integer.TryParse(target.ToString, i) Then
Return i
Else
Return 0
End If
End Function
上記のファンクションはInteger
型に変換できない場合は0
を返す仕様です。
実際に空文字やnull
などを全て0
にしても問題ないかどうかは確認が必要です。
Integer
に限らず、Decimal.TryParse
やBoolean.TryParse
のように、任意の型で同様のチェックを行うことができます。