c#中的as起到什么用?
来源:百度知道 编辑:UC知道 时间:2024/06/03 06:52:34
求个热心人能给我讲一讲as是怎么用的,尽量别用书面语言讲哈,很不好懂,多举例子吧~谢谢大家了!
多举例子 谢谢大家 要不很不好懂。。。
比如定义个类:人
创建个对象:姚明
人 姚明 = new 人();
这样的 谢谢哈!
首先,BS复制的
as是用来类型转换的
比如:两个类:A和B
B b = new B();
//不用as,进行强制转换,如果类型不匹配,会引发转换异常
A a = (A) b;
//使用as,类型不匹配,不会引发异常,会返回一个null,此时 a = null
A a = b as A;
C#中使用as进行类型转换
在程序中,进行类型转换是常见的事。那么在C#中支持以前语言的类型转换方法,即用类型名进行强行转换,例如:
object objTest = new NewType();
NewType newValue = (NewType)objTest;
但是这样转换,有个严重的问题,就是在把objTest强转换成NewType类型对象的时候,这个过程是不安全的,因此需要用try-catch语句来进行保护。这样一来,比较安全的代码方式应该如下所示。
object objTest = new NewType();
NewType newValue = null;
try
{
newValue = (NewType)objTest;
}
catch( Exception err )
{
MessageBox.Show( err.Message );
}
但是如上的写法在C#中已经属于过时的写法,而且也属于比较低效的写法。在C#中比较高效而且安全的写法,应该用as操作符,那么完成如上类似功能的正确代码应该如下。
object objTest = new NewType();
NewType newValue = objTest as NewType;
那么很明显,如上的写法首先看起来很简便,至少代