可能重复:
Direct casting vs 'as' operator?
Casting vs. using the as keyword in the CLR
在C#中,差异是什么
var obj = (Array)Something
vs
var obj = Something as Array
答案 0 :(得分:6)
如果无效,首先会抛出CastException。第二个只会导致obj = null。
答案 1 :(得分:1)
var obj = (Array)Something
如果Something
不是来自System.Array
,或者System.Array
没有var obj = Something as Array
,那么会抛出InvalidCastExcpetion。这可以与值类型和引用类型一起使用。
null
如果obj
不是来自null
,或者conversion operator不是Something
,则将返回System.Array
(System.Array
将为{{1}}) {1}}。这只能用于参考类型。您需要conversion operator首先输入值。
答案 2 :(得分:1)
以及Danijels的回答
第一种可以用于任何类型。
as
运算符只能用于引用类型。