共用方式為


TryCast 運算符 (Visual Basic)

引進不會擲回例外狀況的類型轉換作業。

備註

如果嘗試的轉換失敗, CTypeDirectCast 兩者都會擲回 InvalidCastException 錯誤。 這可能會對應用程式的效能造成負面影響。 TryCast 會傳回 Nothing,因此您只需要針對 Nothing測試傳回的結果,而不需要處理可能的例外狀況。

您使用 TryCast 關鍵字的方式與使用 CType 運算子DirectCast 運算子 關鍵字的方式相同。 您會提供表達式做為第一個自變數,以及將它轉換成第二個自變數的類型。 TryCast 僅適用於參考型別,例如類別和介面。 這兩種類型之間需要繼承或實作關聯性。 這表示某個類型必須繼承自 或實作另一種類型。

錯誤和失敗

TryCast 如果偵測到沒有任何繼承或實作關聯性存在,則會產生編譯程序錯誤。 但是缺少編譯程序錯誤並不保證轉換成功。 如果所需的轉換縮小,它可能會在運行時間失敗。 如果發生這種情況, TryCast 則傳回 Nothing

轉換關鍵詞

類型轉換關鍵詞的比較如下所示。

關鍵詞 數據類型 自變數關聯性 運行時間失敗
CType 運算子 任何數據類型 必須在兩種數據類型之間定義擴大或縮小轉換 拋出 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

另請參閱