C#中的"装箱"(boxing)与"拆箱"(unboxing)
来源:互联网 发布:文字转换语音软件 编辑:程序博客网 时间:2024/04/29 10:01
/* 作者:耿奕廷 版权所有,转载时请注明出处及作者 */
我们知道在C#中,所有的类型都派生自类object,而派生类和继承类之间可以互相转换,这就有了“装箱”与“拆箱”的概念。
装箱:是指把某一类型的值显式或隐式的转换成object类型,或转成被此类型继承的接口。装箱后,这个object类的值在内存中heap区,是原类型的一个拷贝。如:
int i=2;
string str="Hello";
object objstr=str; //隐式
object objint=(object)i; //显式
有意思的是被装箱后可以用obj.ToString()来打印原值,如 Console.WriteLine(objstr.ToString())显示的是Hello。
拆箱:是指把装箱后的object类型显式转成原类型。这时可以用is运算符或GetType()来判断object的原类型。如
int n=(int)objint;
int s=(string)objstr;
if(objint is int) Console.WriteLine("Yeah!");
if(objstr.GetType().ToString()=="System.String") Console.WriteLine("OK");
拆箱注意:
1. 如拆箱后没有转成原类型,编译时不会出错,但运行会出错。所以拆箱后转换类 型 一定要正确。
2.用GetType().ToString()判断时一定要使用类型全称,如:System.String 而不要用String
- C#中的"装箱"(boxing)与"拆箱"(unboxing)
- C#中的"装箱"(boxing)与"拆箱"(unboxing)
- C#中的“装箱”(boxing)与“拆箱”(unboxing)
- C#中的装箱(boxing)拆箱(unboxing)
- C#中的装箱(boxing)拆箱(unboxing) (续)
- C#中的装箱(boxing)拆箱(unboxing)
- C#中的“装箱”(boxing)与“拆箱”(unboxing)
- C#中的“装箱”(boxing)与“拆箱”(unboxing)
- vc.net中的“装箱”(boxing)与“拆箱”(unboxing)
- C#中的装箱(Boxing)和拆箱(Unboxing)
- C#中的“装箱”(boxing)与“拆箱”(unboxing)_C#教程
- C#中的“装箱”(boxing)与“拆箱”(unboxing)_C#教程
- C#“装箱”(boxing)与“拆箱”(unboxing)
- 装箱(Boxing)拆箱(unboxing)
- C#学习日记18----装箱(boxing)转换与拆箱(unboxing)转换
- C#装箱(Boxing)和拆箱(Unboxing)
- C#装箱和拆箱(Boxing 和 UnBoxing)
- C#—装箱(boxing)与拆箱(unboxing)
- 060511表姐结婚。
- Web2.0 关键字
- English 900 英语九百句
- 论文啊论文
- Exceptional C++ Style之38
- C#中的"装箱"(boxing)与"拆箱"(unboxing)
- 正则式到MFA(确定化的有限状态自动机)的自动装换的实现
- IceExt V0.70 Released
- java QA
- 电影里最常规的99个镜头
- 空间开启
- QQ游戏自动登录器V4.0
- 家庭用小型有线及无线网络组建过程
- 关于读书(培根)