c# is 和 as 的区别和使用

1:is 是判断类型,用于检查对象是否与给定类型兼容,不成功则不会抛出异常,如果兼容则返回true,如果不兼容则返回false。在进行类型转换之前用

f (P_obj is System.String)  
 {  
     string objStr = (string)P_obj;  
     MessageBox.Show("与类型兼容", "提示!");  
 }  
 else  
     MessageBox.Show("与类型不兼容", "提示!");

在上面的例子中进行两次兼容性检查,一在判断时P_obj is System.String,另一次在转换(string)P_obj时。用as只需要 一次,永远不会抛出异常。

as关键字是转换,可以将对象转换为指定类型,与is不同,转换成功将会返回转换后的对象,不成功则不会抛出异常而是返回null 。

string objStr = P_obj as string;  
if (objStr != null)  
    MessageBox.Show("与类型兼容", "提示!");  
  
else  
    MessageBox.Show("与类型不兼容", "提示!");  

 

posted @ 2018-05-23 08:51  CodeMover92  阅读(635)  评论(0编辑  收藏  举报