每日一练 之 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.
子类对象转换为父类时,可以隐式转换。
父类对象转换为子类时,必须显示转换,如父类类型所指向的实际对象是父类对象而非子类对象,则出现运行时错误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.
相关文章推荐
- C# 数据类型转换
- c# 隐式类型 转换注意点
- C#调用C++动态库时类型转换
- C#引用C++ Dll 所有类型转换方法
- C#中的类型转换[转]
- C#调用VC的DLL的接口函数参数类型转换一览表
- C#调用VC的DLL的接口函数参数类型转换一览表_蓝竹傲雪
- C# 类型转换
- C#.NET 中的类型转换
- C#中将Object数组转换为String(或者其他类型)的数组(集合)
- C# 调用C++ DLL 的类型转换
- C#中的类型转换
- C#(文字类型转换)【下拉菜单->C#字体CodeBehind】附:【用C#实现生成PDF文档】
- C#.NET 中的类型转换
- C# 中byte[] 和string类型的转换
- DEMO[C#]TypeChange 关于类型转换的一个DEMO
- C#语言学习之旅(5)--运算符和类型强制转换
- C#自定义类型强制转换实例分析
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- C# 异常"关于对象不能从DBNull转换为其他类型"