“(Type)abc”和“abc as Type”之间是否有区别

时间:2012-09-13 11:30:44

标签: c# .net types casting

  

可能重复:
  Direct casting vs 'as' operator?

首先我很抱歉,如果这是重复的,我已经尝试谷歌,但这不是一个简单的“谷歌做”!

以下代码片段之间是否存在差异(功能,性能方面等):

MyClass myClass = (MyClass)someObject;

MyClass myClass = someObject as MyClass;

2 个答案:

答案 0 :(得分:9)

是的,有区别!

如果投射失败,

as 运算符会将变量设置为 null

显式强制转换会引发异常

答案 1 :(得分:1)

是的,如果第一个变体无法将'someObject'强制转换为'MyClass',则会抛出异常。然而第二个将返回null。