C#:study(7)--object、装箱和拆箱
@object--System.Object
C#定义了一个特殊的类object,它是其它所有的类和类型(包括值类型)的决对基类。
如果重载运算符==,就需要重载Equals(object)和GetHashCode()。
@装箱和拆箱
类型为object的引用能够被用来引用包括值类型在内的任何类型。当一个object引用引用了值类型,就发生了装箱(boxing)操作。装箱操作使值类型的数值被存到对象实例中。因此,值类型就被“装”在object类型中。
拆箱(unboxing)式从对象获取值类型的过程。这个操作执行了从object类型引用到期望的值类型的转换。
1 using System;
2 class BoxingDemo
3 {
4 public static void Main()
5 {
6 int x;
7 object obj;
8
9 x = 10;
10 obj = x;//boxing
11
12 int y = (int)obj;//unboxing
13 Console.WriteLine(y);
14 }
15 }
2 class BoxingDemo
3 {
4 public static void Main()
5 {
6 int x;
7 object obj;
8
9 x = 10;
10 obj = x;//boxing
11
12 int y = (int)obj;//unboxing
13 Console.WriteLine(y);
14 }
15 }