c#中的as起到什么用?

来源:百度知道 编辑:UC知道 时间:2024/06/03 06:52:34
不明白C#中的as····
求个热心人能给我讲一讲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;

那么很明显,如上的写法首先看起来很简便,至少代