次の方法で共有


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)