首先我很抱歉,如果这是重复的,我已经尝试谷歌,但这不是一个简单的“谷歌做”!
以下代码片段之间是否存在差异(功能,性能方面等):
MyClass myClass = (MyClass)someObject;
MyClass myClass = someObject as MyClass;
答案 0 :(得分:9)
是的,有区别!
如果投射失败,as 运算符会将变量设置为 null
显式强制转换会引发异常
答案 1 :(得分:1)
是的,如果第一个变体无法将'someObject'强制转换为'MyClass',则会抛出异常。然而第二个将返回null。