在c#中类型的转换分两种:显式和隐式,基本的规则如下:
检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,如果一个对象是某个类型或是其父类型的话就返回为true,否则的话就会返回为false。永远不会抛出异常
如果对象引用为null,那么is操作符总是返回为false,因为没有对象可以检查其类型。
1 object o = new object(); 2 if (o is Label) 3 { 4 Label lb = (Label)o; 5 Response.Write("类型转换成功"); 6 } 7 else 8 { 9 Response.Write("类型转换失败"); 10 }
1 object o = new object(); 2 Label lb = o as Label; 3 if (lb == null) 4 { 5 Response.Write("类型转换失败"); 6 } 7 else 8 { 9 Response.Write("类型转换成功"); 10 }
1、不用在类型之间进行类型转化,即如下编写就会出现编译错误。
Person p = new Person(); Person1 p1=p as Person1;
2、不能应用在值类型数据,即不能如下写(也会出现编译错误)。
object objTest = 11; int nValue = objTest as int;
1、Object => 已知引用类型
使用as操作符来完成
2、Object => 已知值类型
先使用is操作符来进行判断,再用类型强转方式进行转换
3、已知引用类型之间转换
首先需要相应类型提供转换函数,再用类型强转方式进行转换
4、已知值类型之间转换
最好使用系统提供的Convert类所涉及的静态方法
原文链接:https://www.jb51.net/article/56657.htm