共用方式為


CType 運算子 (Visual Basic)

傳回明確將運算式轉換成指定資料類型、物件、結構、類別或介面的結果。

語法

CType(expression, typename)

零件

expression 任何有效的運算式。 如果 的 expression 值超出 所允許的 typename範圍,Visual Basic 會擲回例外狀況。

typename陳述式中DimAs句內合法的任何表示式,亦即任何資料類型、物件、結構、類別或介面的名稱。

備註

小提示

您也可以使用下列函數來執行類型轉換:

  • 類型轉換函式 (例如 CByteCDbl),以及 CInt 執行轉換至特定資料類型的函式。 如需詳細資訊,請參閱 類型轉換函式
  • DirectCast 運算子TryCast 運算子。 這些運算子需要一種類型繼承自另一種類型或實作另一種類型。 它們可以提供比在資料類型之間Object轉換時更好的CType效能。

CType 內嵌編譯,這意味著轉換代碼是評估表達式的代碼的一部分。 在某些情況下,程式碼執行速度會更快,因為不會呼叫任何程序來執行轉換。

如果未定義 從 expressiontypename 的轉換 (例如,從 IntegerDate),Visual Basic 會顯示編譯時間錯誤訊息。

如果轉換在執行階段失敗,則會擲回適當的例外狀況。 如果縮小轉換失敗,則最常見的結果是。OverflowException 如果轉換未定義,則擲回 in InvalidCastException 。 例如,如果 的類型Object,且其執行時期類型沒有轉換為 typename,則expression可能會發生這種情況。

如果 或 typename 的資料expression類型是您已定義的類別或結構,您可以在該類別或結構上定義CType為轉換運算子。 這使得充 CType一個多載的運算子。 如果您這樣做,您可以控制進出類別或結構的轉換行為,包括可以擲回的例外狀況。

轉換關鍵字

類型轉換關鍵字的比較如下。

Keyword 數據類型 論證關係 執行階段失敗
CType 任何資料類型 必須在兩種資料類型之間定義擴大或縮小轉換 投擲 InvalidCastException
DirectCast 運算子 任何資料類型 一種類型必須繼承或實作另一種類型 投擲 InvalidCastException
嘗試投擲 僅限參考類型 一種類型必須繼承或實作另一種類型 不傳回 任何內容

超載

CType運算子也可以在程式碼外部定義的類別或結構上多載。 如果您的程式碼轉換到此類類別或結構或從此類類別或結構轉換,請確保您了解其 CType 運算子的行為。 如需詳細資訊,請參閱 操作員程序

轉換動態物件

動態物件的類型轉換是由使用者定義的動態轉換所執行,這些轉換使用 或 TryConvertBindConvert 方法。 如果您正在使用動態物件,請使用該 CTypeDynamic 方法來轉換動態物件。

Example

下列範例使用運算子將 CType 運算式 Single 轉換為資料類型。

Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)

如需其他範例,請參閱 隱含和明確轉換

另請參閱