【译文】C# 语言教程之:装箱和拆箱

C#装箱和拆箱

原文:C# Tutorial and source code



C# 类型系统含三种类型,有值类型、引用类型和指针类型。C# 允许我们将值类型转换为引用类型,并且也可以反过来。转换值类型到引用类型的操作称为装箱,反过来则称为拆箱。

装箱

  1:   int Val = 1;

  2:   Object Obj = Val; //装箱

第一行定义了一个值类型变量Val 并且赋值。第一行定义一个对象实例,并且将Val的值赋给它。通过上面的操作(Object Obj = i )我们看到一个值类型转换成了引用类型。这些操作称为装箱。

拆箱

  1:   int Val = 1;  2:   Object Obj = Val; //装箱

  3:   int i = (int)Obj; //拆箱

前两行显示如何对一个值类型装箱。下面的一行 (int i = (int) Obj)显示从一个对象获得一个值类型。这种从一个引用类型值转换成值类型值的转换,称为拆箱。

装箱和拆箱是需要大量消耗运算的过程。当一个值类型装箱的时候,一个完整的新对象将被分配并构造出来,同样拆箱的需求也会消耗大量的运算资源。


using System;
using System.Windows.Forms; 
namespace WindowsApplication1
{ 
   public partial class Form1 : Form 
   {
        public Form1()
        {
            InitializeComponent();
        }
         private void button1_Click(object sender, EventArgs e)
        {
            int Val = 1;
            Object Obj = Val;         //装箱 
           int i = (int)Obj;         //拆箱 
           MessageBox.Show("The value is   : " + i);
        }
    }
}

 

本文译自http://csharp.net-informations.com/

更准确内容,请访问作者原文。

此条目发表在程序开发分类目录,贴了, , 标签。将固定链接加入收藏夹。