C#:(Type)Something vs Something为Type之间是否有任何区别

时间:2010-10-05 08:27:49

标签: c#

  

可能重复:
  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

3 个答案:

答案 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.ArraySystem.Array将为{{1}}) {1}}。这只能用于参考类型。您需要conversion operator首先输入值。

答案 2 :(得分:1)

以及Danijels的回答

第一种可以用于任何类型。

as运算符只能用于引用类型。