日期:2014-05-18  浏览次数:20716 次

C#类型转换面试题
大概意思是这样的

MyType a = myObjects as MyType;
MyType b = (MyType)myObjects;

这2个哪个好,什么时候用哪个。


还有一个C++的

int main()
{
  第一行。。.........
}

程序编译成功,有什么情况会可能使程序运行不到第一行就崩溃了。




------解决方案--------------------
MyType a = myObjects as MyType;
这个好;
当 myObjects 不能转换成MyType 时,不会抛出异常;而是返回null;
MyType b = (MyType)myObjects; 不能转换时抛出异常

------解决方案--------------------
显示转换:也称强制类型转换。不能保证数据的正确性。
(type)(表达式)
is操作符进行转换,自动检查时局是否和类型兼容,并返回结果。而且它不会抛出异常。如果对象引用为null,则is总返回false
as检查引用对象是否兼容,如果不兼容则返回null,因此需要做null的判断
------解决方案--------------------
C# code

MyType a = myObjects as MyType;
MyType b = (MyType)myObjects;