黑马程序员技术交流社区

标题: .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类型相同就返回一个非空的引用,否则就返回一个空引用;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2