C#的is和as操作符来进行强制类型转换&&值类型的拆箱、装箱
2013-08-22 15:49
330 查看
if(o is Employee) { Employee e=(Employee)o; //在if语句剩余的部分中使用e; }
Employee e=o as Employee; if(e!=null) { //在if语句中使用e; }
as方法简化代码写法,同时提升性能。
为了将一个值类型转换为一个引用类型,可以使用装箱机制。实际发生的是:
1、从托管堆分配内存。
2、值类型的字段复制到新分配的堆内存。
3、返回对象的地址。
拆箱实际就是一个指针获取过程,该指针指向包含在一个对象中的原始值类型。
相关文章推荐
- 深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别
- C#==>类型转换 与 装箱拆箱
- 深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别
- C#语言学习--基础部分(十二) --堆,栈,装箱,拆箱,安全数据类型转换:as, is
- 深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别
- 深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别
- 很不错的C#类型讲解,堆,栈,值类型,引用类型,装箱,拆箱
- 栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱[C#]
- [C# Tips]再谈值类型的装箱和拆箱
- 黑马程序员——C#枚举 结构体 this关键字 base关键字 值类型 引用类型 装箱和拆箱
- 深入C#内存管理来分析 值类型、引用类型、装箱、拆箱、堆栈几个概念
- C#的类型转换(2)之装箱拆箱和Nullable
- 栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱[C#] - [IT]
- C#中进行字符串类型声明时,一个小写 "string ", 一个大写 "String ", 这两个类有什么区别呢?
- 读《.NET(C#):理解值类型/引用类型,装箱/拆箱,Object类》 有感,小白类文
- C#的装箱与拆箱与基本类型
- [转]C#基元类型、引用类型和值类型以及装箱拆箱
- 深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别
- C#核心概念 装箱与拆箱(boing & unboxing)
- C#与java的比较之装箱和拆箱,数据类型