(Type)obj,可能拋出 InvalidCastException。GetType() 取得確切型別;Convert 處理基礎型別;Parse 將字串轉基本型別。true/false,不拋例外。null,永遠回傳 false。if (o is A) { A a = (A)o; } — 會進行兩次型別檢查。null,不拋例外。null,否則強制轉換會拋 NullReferenceException。B b = o as B; if (b != null) { ... } — 僅一次型別檢查。as 運算子僅執行一次型別檢查,效能優於 is + 強制轉換的兩次檢查。建議:
is。as 搭配 null 檢查。