顯式型別轉換(強制轉型)要求開發者以 (T)expr 明確標示目標型別。它包含所有隱含轉換(寫成顯式形式合法但多餘),並擴充至可能失敗、遺失資訊的場景。
| 特性 | 隱含轉換 | 顯式轉換 |
|---|---|---|
| 語法 | 無標記 | (TargetType) |
| 安全性 | 編譯期保證 | 執行期可能失敗 |
| 資訊遺失 | 無(精度除外) | 常見 |
| 包含關係 | — | ⊇ 隱含轉換 |
object obj = 10; // 裝箱(隱含)
int i = (int)obj; // 拆箱(顯式參考轉換)
// 等價於 int i = (int)(object)obj; // 執行期型別檢查
var x = (int)3.14;short s = (short)30000;M((Derived)baseObj);is/as/型別模式避免例外。checked 內容執行以捕捉溢位。