装箱和拆箱是 C# 中的一个重要概念。C# 类型系统包含三种数据类型:值类型(int
、char
等)、引用类型(对象)和指针类型。基本上,它将值类型转换为引用类型,反之亦然。装箱和拆箱实现了类型系统的统一视图,其中任何类型的值都可以视为对象。
装箱和拆箱的区别 -
装箱 | 拆箱 |
---|---|
它将值类型转换为对象类型 | 它将对象类型转换为值类型 |
装箱是一种隐式转换过程 | 拆箱是显式转换过程 |
装箱将栈中存储的值复制到堆内存中存储的对象中 | 拆箱堆内存上存储的对象复制到栈上存储的值 |
装箱的示例:
// C# program to illustrate Boxing
using System;
public class YiibaiDemo {
static public void Main()
{
int val = 2024;
// Boxing
object o = val;
// Change the value of val
val = 2025;
Console.WriteLine(Value type of val is {0}, val);
Console.WriteLine(Object type of val is {0}, o);
}
}
运行结果:
Value type of val is 2025
Object type of val is 2024
拆箱的示例:
// C# program to illustrate UnBoxing
using System;
public class YiibaiDemo {
static public void Main()
{
int val = 2025;
// Boxing
object o = val;
// UnBoxing
int x = (int)o;
Console.WriteLine(Value of o is {0}, o);
Console.WriteLine(Value of x is {0}, x);
}
}
运行结果:
Value type of val is 2025
Object type of val is 2025
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。