C#中is和as操作符的区别

如题所述

简单来讲:

is:判断该变量是否为某种类型,返回值为Boolean类型(即True or False)

string str="这是个字符";
int num =77520;
bool isStr = str is string;            //True
isStr = num is string ;                //False

as:判断该变量是否为某种类型,并且“尝试”将该对象转为该类型,如果成功则转为该类型并范围该类型的对象,若不成功则返回null。

var ranObj="这是一个字符";
string strObj=ranObj as string;
//int intObj=ranObj as int;
//直接报异常 as 不适用于值类型,因为值类型不能为null
//List<string> arrObj = ranObj as List<string>;  
//直接报异常   不允许进行拆装箱之后进行转换      注意var关键词
object objObj = "这是一个对象";
List<string> listObj = objObj as List<string>; 
//不报错,但是无法进行强转  listObj为null
//Response.Write(listObj.GetType());   //这里放开注释,会报空指针异常

好吧    简单不得...

温馨提示:答案为网友推荐,仅供参考
相似回答