概述C#加框和消框

开发 后端
这里介绍C#加框和消框,加框和消框是C#类型系统的核心概念。通过允许一个值类型转换成类型对象或从类型对象转换成值类型,这种机制形成了值类型和引用类型之间的捆绑连接。

C#加框和消框

这一章的课程中,有时对象的方便性就象值类型一样好用。

这就是C#加框和消框登上了舞台的地方,加框和消框是C#类型系统的核心概念。通过允许一个值类型转换成类型对象或从类型对象转换成值类型,这种机制形成了值类型和引用类型之间的捆绑连接。任何东西终究是一个对象——但是,仅当需要它们是对象时。

1.加框转换

给一个值加框指隐式地把任何值类型转换成类型对象。当一个值类型被加框时,一个对象实例就被分配,且值类型的值被拷贝给新的对象。看以下例子:

  1. int nFunny = 2000;  
  2. object oFunny = nFunny; 

第二行的赋值暗示调用一个加框操作。nFunny整型变量的值被拷贝给oFunny对象。现在整型变量和对象变量都同时存在于栈中,但对象的值居留在堆中。那么,它暗示着什么呢?它们的值互相独立——在它们之间没有连接。(oFunny没有引用nFunny的值。) 以下代码说明了结果:

  1. int nFunny = 2000;  
  2. object oFunny = nFunny;  
  3. oFunny = 2001;  
  4. Console.WriteLine("{0} {1}", nFunny, oFunny); 

当代码改变oFunny的值时,nFunny的值并没有改变。只要你脑袋中有这个copy动作,就能够使用值类型的对象功能,发挥出你的巨大优势!

2.消框转换

和加框相比,消框是显式操作——必须告诉编译器,你想从对象中抽取出哪一种值类型。当执行消框操作时,C#检测所请求的值类型实际上存储在对象实例中。经过成功的校验,该值被消框。

这就是消框如何执行:

  1. int nFunny = 2000;  
  2. object oFunny = nFunny;  
  3. int nNotSoFunny = (int)oFunny; 

以上介绍C#加框和消框

【编辑推荐】

  1. 介绍Mono C#编译器
  2. C#运算符重载学习总结
  3. 概述C#语言的结构体
  4. C#遗传算法学习笔记
  5. 讨论C#分部方法
责任编辑:佚名 来源: 百度空间
相关推荐

2009-09-04 09:34:03

Java和C#顶层声明

2009-08-31 09:44:23

C# Employee

2009-08-13 15:18:23

C#文件上传

2009-08-18 09:26:07

C#线程功能

2009-07-31 14:08:54

C# 匿名函数

2009-08-18 17:29:02

C#使用指针

2009-09-03 11:15:38

C#设置Coopera

2009-08-20 16:28:45

C#匿名方法

2009-08-25 10:08:39

C# MyData对象

2009-08-25 16:49:44

C#使用if语句

2009-08-24 18:09:13

C#构造函数

2009-08-17 09:57:00

C# Windows

2009-09-03 10:42:16

C# Employee

2009-08-19 11:09:00

C# Cast<T>

2009-09-04 13:43:31

C#顺序栈C#连式栈

2009-09-04 10:26:09

Java和C#字符串类

2009-08-06 16:30:58

C#代码和验证码图片

2009-09-04 14:41:09

C#同步线程

2009-07-31 15:37:45

C#静态构造函数

2009-08-10 17:12:54

C#编译器
点赞
收藏

51CTO技术栈公众号