这篇文章主要讲解了“C#里的装箱和拆箱是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#里的装箱和拆箱是什么意思”吧!C#装箱和拆箱机制使得在C#类型系统中,任何值类型,引用类型和
这篇文章主要讲解了“C#里的装箱和拆箱是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#里的装箱和拆箱是什么意思”吧!
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#里的装箱和拆箱是什么意思这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!
--结束END--
本文标题: C#里的装箱和拆箱是什么意思
本文链接: https://lsjlt.com/news/294237.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0