TryCast 演算子 (Visual Basic)
例外をスローしない型変換操作を導入します。
Remarks
試行された変換が失敗した場合、CType
と DirectCast
はどちらも InvalidCastException エラーをスローします。 これは、アプリケーションのパフォーマンスに悪影響を与える可能性があります。 TryCast
は Nothing を返します。そのため、発生する可能性がある例外を処理する必要はなく、代わりに、返された結果を Nothing
に対してテストすることのみ必要です。
TryCast
キーワードは、CType 関数および DirectCast 演算子キーワードを使用するのと同じ方法で使用します。 1 番目の引数として式を指定し、2 番目の引数としてその式の変換先の型を指定します。 TryCast
は、クラスやインターフェイスなどの参照型に対してのみ動作します。 2 つの型間の継承関係または実装関係が必要になります。 つまり、一方の型が他方の型を継承または実装する必要があります。
エラーと障害
TryCast
で、継承関係または実装関係が存在しないことが検出されると、コンパイラ エラーが発生します。 ただし、コンパイラ エラーが発生しない場合でも、変換が正常に行われるとは限りません。 目的の変換が縮小変換の場合、実行時に失敗する可能性があります。 これが発生すると、TryCast
は Nothing を返します。
変換キーワード
型変換のキーワードの比較を次に示します。
キーワード | データの種類 | 引数の関係 | ランタイム エラー |
---|---|---|---|
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
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET