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值赋给目标。这样就避免 可能因为转型而造成的异常。