C#:简说as和is运算符

来源:互联网 发布:新浪数据库 编辑:程序博客网 时间:2024/05/20 10:55

as运算符用于在两个引用类型之间进行转换,如果转换失败则返回null,并不抛出异常,因此转换是否成功可以通过结果是否为null进行判断,并且只能在运行时才能判断。演示如下:

string s = objectArray[o] as string;

if(s != null)

{

    //转换成功

}else{

    //转换失败

}

is运算符用于检查对象是否与给定类型兼容,并不执行真正的转换。如果判断的对象引用为null,则返回false。它并不会抛出异常,且只适用于引用类型转换、装箱转换和拆箱转换。演示如下:

if(obj is MyObject)

{

    //在这里可以进行()运算符显式类型转换

}

无论是as还是is运算符,都比直接使用()运算符强制转换更安全。