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) を返します。
型変換のキーワード
型変換のキーワードを比較したものを次に示します。
キーワード |
データ型 |
引数の関係 |
実行時のエラー |
Any 型 |
2 つのデータ型の間で拡大変換または縮小変換を定義する必要があります。 |
InvalidCastException をスロー |
|
Any 型 |
一方の型が他方を継承または実装していることが必要 |
InvalidCastException をスロー |
|
TryCast |
参照型のみ |
一方の型が他方を継承または実装していることが必要 |
使用例
次の例は、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