TryCast 演算子 (Visual Basic)

例外をスローしない型変換操作を導入します。

注釈

変換の試行が失敗した場合、 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

こちらも参照ください