C#中的is和as操作符
1.is操作符
检查一个对象是否兼容于指定的类型,并返回一个bool值--即使类型不对,仅返回false,不会抛出异常;null对象则返回false
if (o is Employee)
...{
Employee e = (Employee)o;
}
上述代码检测两次对象类型,一次在if中的is,另一次在显示转型时--会影响性能,使用as代替。
2.as操作符
用来简化上述代码:永远不会抛出异常,如果对象不能转型,就返回null:
Employee e = o as Employee;
if (e != null)
...{
...//执行操作
}
检查一个对象是否兼容于指定的类型,并返回一个bool值--即使类型不对,仅返回false,不会抛出异常;null对象则返回false
if (o is Employee)
...{
Employee e = (Employee)o;
}
上述代码检测两次对象类型,一次在if中的is,另一次在显示转型时--会影响性能,使用as代替。
2.as操作符
用来简化上述代码:永远不会抛出异常,如果对象不能转型,就返回null:
Employee e = o as Employee;
if (e != null)
...{
...//执行操作
}