C#里的装箱和拆箱是什么意思

这篇文章主要讲解了“C#里的装箱和拆箱是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#里的装箱和拆箱是什么意思”吧!

10余年的平塘网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整平塘建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“平塘网站设计”,“平塘网站推广”以来,每个客户项目都认真落实执行。

C#装箱和拆箱机制使得在C#类型系统中,任何值类型,引用类型和object类型之间进行转换,简单地说,有了C#装箱和拆箱的概念,对任何类型的值来说,最终我们都可以看作是object类型.  

装箱转换是指将一个值类型隐式地转换成一个object类型,或者把这个值类型转换成一个被该值类型应用的接口类型,把一个值类型的值装箱,也就是创建一个object实例并将这个值复制给这个object.  

C#装箱和拆箱正好相反,拆箱转换是指将一个对象类型显式转换成一个值类型,或是将一个接口类型显式转换成一个执行该接口的值类型.拆箱的过程分为两步,首先,检查这个对象实例,看它是否为给定的值类型的装箱值,然后,把这个实例的值拷贝给值类型的变量.

using System;  using System.Collections.Generic;  using System.ComponentModel;  using System.Data;  using System.Drawing;  using System.Text;  using System.Windows.Forms;   namespace WindowsApplication2  ...{      public partial class Form1 : Form      ...{          public Form1()          ...{              InitializeComponent();          }           private void Form1_Load(object sender, EventArgs e)          ...{              Checker c = new Checker();              ClassA ca=new ClassA();              Mystruct s = new Mystruct();              IClassB ib =ca;  //封箱;              object ob =s;  //封箱;从值类型转换到object类型              Mystruct s1 =(Mystruct)ob;  //拆箱  从object类型转换到值类型              c.Getcheck(s1);          }      }      public class Checker      ...{          public Checker()          ...{             }          public void Getcheck(object par)          ...{              if (par is ClassA)              ...{                  MessageBox.Show("YES,ClassA");              }              else             ...{                  MessageBox.Show("NO,ClassA");              }              if (par is IClassB)              ...{                  MessageBox.Show("YES,IClassB");              }              else             ...{                  MessageBox.Show("NO,IClassB");              }              if (par is Mystruct)              ...{                  MessageBox.Show("YES,Mystruct");              }              else             ...{                  MessageBox.Show("NO,Mystruct");              }          }      }      public class ClassA:IClassB      ...{                }      public class ClassB:IClassB      ...{       }      interface IClassB      ...{       }      struct Mystruct      ...{         }  }

感谢各位的阅读,以上就是“C#里的装箱和拆箱是什么意思”的内容了,经过本文的学习后,相信大家对C#里的装箱和拆箱是什么意思这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


当前名称:C#里的装箱和拆箱是什么意思
链接分享:http://scyanting.com/article/pjogde.html