Hopes

Start Here..

 

C#中as与is的用法(转)

C#中as与is的用法(转) 

一、类型转换   
1.任何类型都可以转换为其基类类型,用隐式转换完成;  
2.任何类型转换为其派生类型时,必须进行显示转换。如:(类型名)对象名; 
3.使用GetType可以取得任何对象的精确类型; 
4.基本类型可以使用Convert类实现类型转换;  
5.除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型; 
6.值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing);
   
二、is/as示例   
is转换规则:   
1. 检查对象类型的兼容性,并返回结果true(false); 
2.不会抛出异常;  
3.如果对象为null,刚返回false;  

示例:  C#代码   
1. object o = "abc";    
2. if (o is string) //执行第一次类型兼容性检查   
3. {    
4.     string s = (string)o; //执行第二次类型兼容性检查,并转换   
5.     MessageBox.Show("转换成功!");   
6. }   
7. else  
8. {    
9.     MessageBox.Show("转换失败!");   
10. }     

as转换规则:   
1.检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null; 
2.不会抛出异常;  
3.如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;   示例:

 
C#代码  
1. object o = "abc";    
2. string s = o as string; //执行第一次类型兼容性检查,并返回结果   
3. if (s != null)     
4.     MessageBox.Show("转换成功!");   
5. else   
6.     MessageBox.Show("转换失败!");     

注:as比is少执行一次兼容性检查,性能可能会高一点点。     
as是引用类型类型的转换或者装箱转换,不能用与值类型的转换。

posted on 2014-01-18 19:39 ** 阅读(129) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

公告

你好!

常用链接

留言簿(2)

随笔档案

文章分类

文章档案

新闻档案

相册

收藏夹

C#学习

友情链接

搜索

最新评论

阅读排行榜

评论排行榜