- 类型转换
- 任何类型都可以转换为其基类类型,用隐式转换完成;
- 任何类型转换为其派生类型时,必须进行显示转换。如:(类型名)对象名;
- 使用GetType可以取得任何对象的精确类型;
- 基本类型可以使用Convert类实现类型转换;
- 除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;
- 值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing);
- as/is示例
- is转换规则:
- 检查对象类型的兼容性,并返回结果true(false);
- 不会抛出异常;
-
如果对象为null,刚返回false;
示例:
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转换规则:
- 检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
- 不会抛出异常;
- 如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常; 示例:
1 object o = "abc"; 2 string s = o as string; //执行第一次类型兼容性检查,并返回结果 3 if (s != null) 4 MessageBox.Show("转换成功!"); 5 else 6 MessageBox.Show("转换失败!");
as比is少执行一次兼容性检查,性能可能会高一点点。
相关文章
- 07-27python 之 并发编程(守护线程与守护进程的区别、线程互斥锁、死锁现象与递归锁、信号量、GIL全局解释器锁)
- 07-277-4 通讯录的录入与显示 (10 分)
- 07-27mongoose 的使用【02】:【Express+Mongoose】Mongoose 预定义模式修饰符 Getters与 Setters修饰符
- 07-27必贝yo对企业大数据的处理与分析
- 07-27PEO/LITFSI固态电解质的离子传输与压力构效关系
- 07-27OC .(点)与->(箭头)用法区别
- 07-274G EPS 中建立 eNB 与 MME 之间的 S1 连接
- 07-27jsonObeject与hashMap与实体类之间的互转
- 07-27popToViewController的用法(跳转到你想跳转到的那个控制器)
- 07-27两个大屏可视化案例的布局与实现