首页 理论教育 使用AS运算符C#编程新手自学手册

使用AS运算符C#编程新手自学手册

时间:2023-10-22 理论教育 版权反馈
【摘要】:as运算符从来不会发生运行异常,这和显式转换有很大的区别。使用as运算符的具体格式如下:表达式 as 引用类型as运算符的运算规则如下。如果不是上述情况,则不会实现从B到T的引用转换或装箱转换,并且发生编译错误。但是转换失败的对象将为null,使用这些对象后就会引发使用空引用的异常。图10-12 实例执行结果注意as运算符只能进行引用转换和装箱转换,而不能进行其他类型的转换处理。

使用AS运算符C#编程新手自学手册

运算符as的功能是,将某个对象显式的转换为一个指定的引用类型。as运算符从来不会发生运行异常,这和显式转换有很大的区别。使用as运算符的具体格式如下:

表达式(B) as 引用类型(T)

as运算符的运算规则如下。

1)如果B的编译类型和T相同,则运算结果是B的值。

2)如果B的编译类型和T不相同,且存在从B编译时的类型到T的隐式引用转换,或者装箱转换,则执行这个转换处理,并且该转换的结果就是运算结果。

3)如果B的编译类型和T不相同,且存在从B编译时的类型到T的显式引用转换,则执行动态类型检查。具体规则如下。

978-7-111-36370-5-Part02-386.jpg如果B的值是null,则运算结果是具有编译时类型T的值null。

978-7-111-36370-5-Part02-387.jpg如果B的值不是null,假设R是B引用实例的运行类型:如果R和T的类型相同,或R为引用类型并且存在从R到T的隐式引用转换,或R是值类型并且T是R实现了的接口类型,则运算结果是由B给定的具有编译时类型T的引用。如果不是上述情况,则不会实现从B到T的引用转换或装箱转换,并且发生编译错误

看下面的一段代码:(www.xing528.com)

978-7-111-36370-5-Part02-388.jpg

978-7-111-36370-5-Part02-389.jpg

上述代码运行后,不会引发异常错误,具体如图10-12所示。

但是转换失败的对象将为null,使用这些对象后就会引发使用空引用的异常。

978-7-111-36370-5-Part02-390.jpg

图10-12 实例执行结果

注意

as运算符只能进行引用转换和装箱转换,而不能进行其他类型的转换处理。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈