namespace _02_装箱拆箱
{
internal class Program
{
static void Main(string[] args)
{
// 数据类型分为两大块
// 1. 值类型数据
// 2. 引用类型数据
// 通过类创建的对象属于引用类型数据
// 值类型数据转化为引用数据类型 就是装箱
// 引用数据类型转化为值类型 就是拆箱
object obj = 1;// 装箱
//object obj2 = new Person();// 拆箱
if ( obj is int )
{
int a = (int)obj; // 拆箱
}
// 装箱就是将栈中的数据转移到堆中,拆箱就是将堆中的数据转移到栈中。
// 装箱和拆箱需要操作内存 故而比较浪费性能
// 建议尽量避免使用装箱和拆箱操作
// 有一个数组 要存储 数字、字符串、布尔值、字符 这个数组应该是什么类型?
object[] o = {1, "hello", true, 'c' };
for (int i = 0; i < o.Length; i++)
{
object item = o[i];
if (item is int)
{
int num = (int)item;
Console.WriteLine(num);
}
else if (item is string)
{
string str = (string)item;
Console.WriteLine(str);
}
else if (item is bool)
{
bool b = (bool)item;
Console.WriteLine(b);
}
else if (item is char)
{
char c = (char)item;
Console.WriteLine(c);
}
}
}
}