次の方法で共有


TryCast 演算子 (Visual Basic)

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

注釈

変換の試行が失敗した場合、 CTypeDirectCast の両方で InvalidCastException エラーがスローされます。 これは、アプリケーションのパフォーマンスに悪影響を与える可能性があります。 TryCastNothing を返します。そのため、可能な例外を処理する代わりに、返された結果を Nothingに対してのみテストする必要があります。

TryCast キーワードは、CType 関数DirectCast Operator キーワードを使用するのと同じ方法で使用します。 最初の引数として式を指定し、2 番目の引数として変換する型を指定します。 TryCast は、クラスやインターフェイスなどの参照型でのみ動作します。 これには、2 つの型間の継承または実装の関係が必要です。 つまり、一方の型は、もう一方の型を継承または実装する必要があります。

エラーとエラー

TryCast は、継承または実装リレーションシップが存在しないことを検出した場合にコンパイラ エラーを生成します。 ただし、コンパイラ エラーがないと、変換が成功するとは限りません。 目的の変換が縮小されている場合は、実行時に失敗する可能性があります。 この場合、 TryCastNothing を返します。

変換キーワード

型変換キーワードの比較は次のとおりです。

キーワード データ型 引数のリレーションシップ 実行時エラー
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

こちらも参照ください