-1
我完全瞭解爲什麼as
不能用於值類型。不過,我知道的唯一的更換:有值類型的'as'替代嗎?
if (!(obj is MyValueType)) { // Type check #1
// Exception or whatnot
}
var myValueType = (MyValueType)obj; // Type check #2
然而,這個代碼不類型檢查具有性能成本的兩倍,同樣的成本as
來解決引用類型。
我的問題:值類型是否有更好的高性能機制/語法?
我能想到的唯一的單一類型檢查機制是try/catch
,但這當然會有其自身的性能成本,並且我儘量避免基於異常的編程。
不,它不是.. –
'此代碼執行兩次類型檢查,其性能成本,'爲什麼不省略第一次檢查,並讓它在類型不正確時拋出'InvalidCastException'? – 2016-01-13 11:20:18
@Kilanny作者不想使用try catch基於異常的編程。 –