文章分类 | 软件分类 | 最新软件 | 杀毒软件 | 实用软件  | MTV下载  | 设为首页 |
  | 下载分类 | 最近更新
您的位置: 首页 >> 文章首页 >> 技术开发 >> .Net 专栏 >> C#语言 >>  
C#语言点击TOP10
·使用Web服务将C#代码转换为VB.NET代码2006-2-9 18:10:39
·C#编写的windows计算器-源代码2006-2-10 16:08:20
·用Visual C#中实现DB2数据库编程2006-2-9 16:41:48
·C#中的非安全编程2006-2-9 17:32:38
·编程特例篇——LOGO语言2006-2-5 23:53:56
·Visual FoxPro 9中新的数据处理方式2006-2-6 7:50:17
·小议Windows CE 的下浏览器配置2006-2-6 7:50:09
·如何更好更快的debug2006-2-5 23:53:54
·利用c#制作简单的留言板22006-2-9 16:41:33
·C++中通过溢出覆盖虚函数指针列表执行代码2006-2-9 12:28:20
.Net 专栏点击TOP10
·ADO.net中数据库连接方式2006-2-9 17:35:03
·ASP.NET里的事务处理2006-2-5 12:41:30
·使用Web服务将C#代码转换为VB.NET代码2006-2-9 18:10:39
·十天学会ASP.net之第九天2006-2-6 10:10:06
·如何给DataGrid添加双题头分类显示2006-2-5 18:46:43
·使用嵌套的Repeater控件2006-2-5 12:41:52
·Net 下安装、调试的常见问题与错误2006-2-9 9:04:53
·在ASP.NET中值得注意的两个地方2006-2-9 16:40:07
·C#中的非安全编程2006-2-9 17:32:38
·ASP.NET中利用cookies保持客户端信息2006-2-9 17:33:25

 

C#中的“装箱”(boxing)与“拆箱”(unboxing)
作者:我去下载           时间:2006-2-10 12:22:09


装箱和拆箱:任何值类型、引用类型可以和object(对象)类型之间进行转换。装箱转换是指将一个值类型隐式或显式地转换成一个object类型,或者把这个值类型转换成一个被该值类型应用的接口类型(interface-type)。把一个值类型的值装箱,就是创建一个object实例并将这个值复制给这个object,装箱后的object对象中的数据位于堆中,堆中的地址在栈中。被装箱的类型的值是作为一个拷贝赋给对象的。如:

int i = 10;

object obj = i; //隐式装箱

object obj = object(i); //显式装箱

if(obj is int) //int

       Console.WriteLine(“OK”);

Console.WriteLine(obj.GetType()); //System.Int32


有两种方式来查看包装以后的引用对象中包装的原始数据的类型。要判断原始类型是否是某个给定的原子类型,用is;如果要返回一个字符串,可以用object类的GetType方法。

 

 

拆箱转换是指将一个对象类型显式地转换成一个值类型,或是将一个接口类型显式地转换成一个执行该接口地值类型。注意装箱操作可以隐式进行但拆箱操作必须是显式的。拆箱过程分成两步:首先,检查这个对象实例,看它是否为给定的值类型的装箱值。然后,把这个实例的值拷贝给值类型的变量。比如:

int i = 10;

object obj = i;

int j = (int)obj;

 

有两种方式来查看包装以后的引用对象中包装的原始数据的类型。要判断原始类型是否是某个给定的原子类型,用is;如果要返回一个字符串,可以用object类的GetType方法。

 

 

拆箱转换是指将一个对象类型显式地转换成一个值类型,或是将一个接口类型显式地转换成一个执行该接口地值类型。注意装箱操作可以隐式进行但拆箱操作必须是显式的。拆箱过程分成两步:首先,检查这个对象实例,看它是否为给定的值类型的装箱值。然后,把这个实例的值拷贝给值类型的变量。比如:

int i = 10;

object obj = i;

int j = (int)obj;

分页:
相关文章:
Copyright© 2005-2006 wqxz.com, All Rights Reserved. 购买虚拟主机请与本站联系