次の方法で共有


TryCast

更新 : 2007 年 11 月

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

解説

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

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

エラー

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

型変換のキーワード

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

キーワード

データ型

引数の関係

実行時のエラー

CType 関数

Any 型

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

InvalidCastException をスロー

DirectCast

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

参照

概念

拡大変換と縮小変換

暗黙の型変換と明示的な型変換