TryCast 演算子 (Visual Basic)

例外をスローしない型変換演算を開始します。

解説

変換が失敗した場合、CType および DirectCast の両方から InvalidCastException エラーが発生します。 これは、アプリケーションのパフォーマンスに悪影響を与える可能性があります。 TryCast は、例外を処理するのではなく、返された値が Nothing かどうかをテストするだけで済むように Nothing (Visual Basic) を返します。

TryCast キーワードは、CType 関数 (Visual Basic)DirectCast 演算子 (Visual Basic) キーワードと同じように使用します。 1 つ目の引数に式を指定し、2 つ目の引数に変換後の型を指定します。 TryCast は、クラスやインターフェイスなどの参照型のみを扱います。 2 つの型の間には、継承または実装の関係が必要です。 つまり、一方の型が他方を継承しているか、実装している必要があります。

エラー

継承も実装もないことを確認した場合、TryCast はコンパイラ エラーを生成します。 コンパイラ エラーが発生しなくても、変換が成功したとは限りません。 実行する変換が縮小変換である場合、実行時に失敗する可能性があります。 この場合、TryCast は Nothing (Visual Basic) を返します。

型変換のキーワード

型変換のキーワードを比較したものを次に示します。

Keyword

データ型

引数の関係

実行時のエラー

CType 関数 (Visual Basic)

Any 型

2 つのデータ型の間で拡大変換または縮小変換を定義する必要があります。

InvalidCastException をスロー

DirectCast 演算子 (Visual Basic)

Any 型

一方の型が他方を継承または実装していることが必要

InvalidCastException をスロー

TryCast

参照型のみ

一方の型が他方を継承または実装していることが必要

Nothing (Visual Basic) を返す

使用例

次の例は、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

参照

概念

拡大変換と縮小変換 (Visual Basic)

暗黙の型変換と明示的な型変換 (Visual Basic)