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("与类型不兼容", "提示!");