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 IfInteger.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のように、任意の型で同様のチェックを行うことができます。