is 和 as

在C#中,is运算符可以判断基础类型。返回是true or false。is运算符的优点在于,它允许验证一个数据项是否属于一个特定的类型。

对于is还有一点要强调,is运算符不仅检查转型是否成功,还会检查底层对象本身是否真的是一个特定的类型。

比如现在有一句为:

int a;

bool b;

b=a.tostring() is string:

其结果b=false.

虽然int类型可以转换为string,但是其底层不是string类型的。所以is运算后,其结果为false.

 

as运算符则更进一步,它会尝试将对象转换为一个特定的数据类型。但是,其最突出的一个优点就是:在使用as时,如果转换无效,即假如源类型不是固有的(继承链内部的)目标类型as将null值赋给目标。这样就避免 可能因为转型而造成的异常。

posted @ 2011-08-25 17:32  rarry  阅读(205)  评论(0编辑  收藏  举报