关于c#:“(Type)abc”和“abc as Type”之间有区别吗

Is there a difference between “(Type)abc” and “abc as Type”

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Direct casting vs 'as' operator?

首先,如果这是一个副本,我很抱歉,我尝试过谷歌,但它不是一个容易的"谷歌做"!

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

1
2
3
MyClass myClass = (MyClass)someObject;

MyClass myClass = someObject as MyClass;


是的,有区别!

如果强制转换失败,as运算符将变量设置为空。

显式强制转换将引发异常


是的,如果第一个变量不能将"someObject"强制转换为"myClass",它将抛出异常。而第二个则返回空值。