is/as操作符(类型转换)

 

 

// is的使用,以下代码中CLR检查了两次对象类型
public
void p() { Object o = new Object(); if(o is Employee) //CLR核实o是否兼容于Employee类型 { Employee e = (Employee)o; //CLR再次核实o是否引用一个Employee } }

// as的使用(会返回空,要判断),只进行了一次类型检查,提升性能
public void p()
{
    Object o = new Object();
    Employee e = o as Employee; //CLR核实o是否兼容于Employee类型
    if(e != null) //检查e是否为空(检查为空的速度比校验对象类型快得多)
    {
        //在if语句中使用e
    }
}

结论:使用as可以提升性能(相较于is) 

 ---以上摘自书籍《CLR via C#》Jeffrey Richter-第四章类型基础-4.2类型转换

posted @ 2022-09-08 15:31  春天花会开,  阅读(51)  评论(0)    收藏  举报