分享方式:


TryCast 運算子 (Visual Basic)

介紹一種不會擲回例外狀況的類型轉換運算。

備註

如果嘗試的轉換失敗,則 CTypeDirectCast 都會擲回 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

另請參閱