TryCast 運算子 (Visual Basic)
介紹一種不會擲回例外狀況的類型轉換運算。
備註
如果嘗試的轉換失敗,則 CType
和 DirectCast
都會擲回 InvalidCastException 錯誤。 這可能會對應用程式的效能造成不良影響。 TryCast
會傳回 Nothing,因此您只需要針對 Nothing
測試傳回的結果,而不需要處理可能的例外狀況。
TryCast
關鍵字使用方式與使用 CType 函式和 DirectCast 運算子關鍵字的方式相同。 您會提供運算式作為第一個引數,並提供類型來將其轉換成第二個引數。 TryCast
只會在參考型別上運作 (例如類別或介面)。 它會測試兩種類型之間的繼承或實作關係。 這表示一種類型必須繼承自或實作另一種類型。
錯誤和失敗
如果偵測到沒有繼承或實作關係存在,則 TryCast
會產生編譯器錯誤。 但沒有編譯器錯誤並不保證轉換成功。 如果所需的轉換為縮小轉換,則在執行階段可能會失敗。 如果發生這種情況,TryCast
會傳回 Nothing。
轉換關鍵字
類型轉換關鍵字的比較如下所示。
關鍵字 | 資料類型 | 引數關係 | 執行階段失敗 |
---|---|---|---|
CType Function | 任何資料類型 | 必須在兩種資料類型之間定義放大或縮小轉換 | 擲回 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