标题: .net 中的 as 和 is的作用和区别 [打印本页] 作者: wenbolwm 时间: 2012-3-18 15:12 标题: .net 中的 as 和 is的作用和区别 请问下,在.net 中的 as 和 is的作用和区别。谢谢。作者: 柏云杉 时间: 2012-3-18 16:00
shilvyanfgq 发表于 2012-3-18 15:53
is 和 as 操作符是用来进行强制类型转换的
is : 检查一个对象是否兼容于其他指定的类型,并返回一个Bool值, ...
try
{
object o = new object();
Label lb = (Label)o;
}
catch()
{
Response.Write("类型转换失败");
}
以上和as相比 哪个更快一点?作者: oscar 时间: 2012-3-20 12:56
总结可以概况为:
1、is是运算符,用于检查对象是否与给定类型兼容,is只做兼容判断,并不执行真正的类型转换
语法:<引用变量名> is [类名]
如:
int i=100;
if(i is int32)
ConsoleWriteLine("i is a Int32");
else
ConsoleWriteLine("i is not a Int32");
2、as运算符用于执行引用类型的显示类型转换,类型必须为引用类型或null。
语法:语法:<引用变量名> as [类名]
如:
object MyObj="Hello";
string MyString=MyObj as string;//myString="Hello"
注:使用as运算符执行类型转换时,不需要使用is运算符测试类型后再执行转换,它支持安全的类型转换。
as的规则:
1、检查对象类型兼容性并进行类型转换,返回结果。如果不兼容就返回null
2、不会抛出异常作者: 孙秋生 时间: 2012-3-20 13:28
is就是用于对类型的判断。返回true和false;
as类型相同就返回一个非空的引用,否则就返回一个空引用;