例外をスローしない型変換操作を導入します。
注釈
変換の試行が失敗した場合、 CType
と DirectCast
の両方で InvalidCastException エラーがスローされます。 これは、アプリケーションのパフォーマンスに悪影響を与える可能性があります。
TryCast
は Nothing を返します。そのため、可能な例外を処理する代わりに、返された結果を Nothing
に対してのみテストする必要があります。
TryCast
キーワードは、CType 関数と DirectCast Operator キーワードを使用するのと同じ方法で使用します。 最初の引数として式を指定し、2 番目の引数として変換する型を指定します。
TryCast
は、クラスやインターフェイスなどの参照型でのみ動作します。 これには、2 つの型間の継承または実装の関係が必要です。 つまり、一方の型は、もう一方の型を継承または実装する必要があります。
エラーとエラー
TryCast
は、継承または実装リレーションシップが存在しないことを検出した場合にコンパイラ エラーを生成します。 ただし、コンパイラ エラーがないと、変換が成功するとは限りません。 目的の変換が縮小されている場合は、実行時に失敗する可能性があります。 この場合、 TryCast
は Nothing を返します。
変換キーワード
型変換キーワードの比較は次のとおりです。
キーワード | データ型 | 引数のリレーションシップ | 実行時エラー |
---|---|---|---|
CType 関数 | 任意のデータ型 | 拡大変換または縮小変換は、2 つのデータ型の間で定義する必要があります | スロー InvalidCastException |
DirectCast 演算子 | 任意のデータ型 | 一方の型は、他の型を継承または実装する必要があります | スロー InvalidCastException |
TryCast |
参照型のみ | 一方の型は、他の型を継承または実装する必要があります | Nothing を返します 。 |
例
次の例は、TryCast
の使用方法を示しています。
Function PrintTypeCode(ByVal obj As Object) As String
Dim objAsConvertible As IConvertible = TryCast(obj, IConvertible)
If objAsConvertible Is Nothing Then
Return obj.ToString() & " does not implement IConvertible"
Else
Return "Type code is " & objAsConvertible.GetTypeCode()
End If
End Function
こちらも参照ください
.NET