您的位置:首页 > 编程语言 > C#

每日一练 之 c#类型转换

2007-12-29 23:56 253 查看
一个基础知识,但不是每个人都能说清楚。

子类对象转换为父类时,可以隐式转换。

父类对象转换为子类时,必须显示转换,如父类类型所指向的实际对象是父类对象而非子类对象,则出现运行时错误InvaildCastException。

使用as操作符可以避免InvalidCastException,只是当转换不成功时返回null。

MyTypeA a = new MyTypeA();

MyTypeB b1 = (MyTypeB)a;

MyTypeB b2 = a as MyTypeB;
MyTypeB是MyTypeA的子类,第二句将引发InvalidCastException,而第三句不会出错,只是b2为null引用。

还有一个is操作符,这个操作符可以判断该变量实际引用的对象的类型是否是一个指定的类型,注意是实际引用的对象类型,而不理会该引用是抽象类类型还是一个接口。

当实际引用的是一个null的时候会返回一个false.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: