您的位置:首页 > 编程语言 > C#

C#中将值类型变量赋值给对象与将对象赋值给值类型变量(装箱与拆箱)

2012-12-02 23:59 295 查看
  C#笔试题中,经常会考 到装箱和拆箱的问题。一般都是通过间接的方式来考查,如:问将一个整型数据赋值给一个对象会进行什么操作?  (答案是装箱)或通过程序题来考查 ,写出以下程序的输出结果?(答案:a = 17  j=17)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int i = 17;
object a = i;
Console.WriteLine("a = "+a);
int j = (int)a;
Console.WriteLine("j = "+j);

}
}
}

         通俗的说法,装箱和拆箱的过程就是值类型与引用类型相互转化的过程。

         装箱和拆箱的过程是将值类型视为对象。装箱时,将值类型数据存储于垃圾回收堆中;拆箱时,将值类型数据从对象中取出来。

         为什么要进行装箱和拆箱,请举例说明?

         答:当进行函数调用时,如果函数的形参为引用类型,但要将值类型变量传递给该函数,那么就要将值类型变量装箱;一个非泛型容器,为了保证通用性,通常将数据类型设为引用类型,在容器中装入值类型数据时就需要装箱。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐