黑马程序员技术交流社区
标题:
c#中的类型转换
[打印本页]
作者:
陈辉
时间:
2012-11-15 12:14
标题:
c#中的类型转换
1、定义两个类:
internal class B
{
}
internal class D:B
{
}
2、举例说明类型转换(用yes表示是成功编译和执行,还是造成编译时错误,还是造成运行时错误 ):
语句 成功编译和执行 造成编译时错误 造成运行时错误 错误分析
Object o1=new Object(); yes
Object o2=new B(); yes
Object o3=new D(); yes
Object o4=o3 ; yes
B b1=new B(); yes
B b2=new D(); yes
D d1=new D(); yes
B b3=new Object(); yes 等号前是B类型的变量,而等号后需要一个Object类型的变量
D d2=new Object(); yes 同上
B b4=d1; yes
D d3=b2; yes d3是D类型的变量,b2是B类型的变量
D d4=(D)d1; yes
D d5=(D)b2; yes
D d6=(D)b1; yes d6是D类型的变量,而b1指向了B对象,D类型的变量不能引用B
对象
B b5=(B)o1; yes 同上
B b6=b2; yes
3、总结:
前提条件:两个类型要想能互相转换,两个类之间必须有几成关系。
1、等号前面的引用变量和等号后面的引用变量的类型相同(例如:B b4=d1、D d4=(D)d1 ),否则编译错误(例如:D d3=b2 )
2、等号前面的引用变量和等号后面的引用变量所指向的对象类型相同(例如:B b6=b2 、Object o2=new B() ),否则运行时错误(例如:D d6=(D)b1 )
同时满足上面两个条件,才能成功编译和执行 。
上述是个人观点,如有错误,还请大家指正。
作者:
许庭洲
时间:
2012-11-15 21:54
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2