C# Knowledge

  1. object & Object in C#

object 類型在 .NET Framework 中是 Object 的別名。 在 C# 的統一類型系統中,所有類型(預定義類型、用戶定義類型、引用類型和值類型)都是直接或間接從 Object 繼承的。 可以將任何類型的值賦給 object 類型的變量。 將值類型的變量轉換爲對象的過程稱爲“裝箱”。將對象類型的變量轉換爲值類型的過程稱爲“取消裝箱”。

下面的示例演示了 object 類型的變量如何接受任何數據類型的值,以及 object 類型的變量如何在 .NET Framework 中使用 Object 的方法。

class ObjectTest {

public int i = 10;

}

class MainClass2 {

static void Main() {

object a; a = 1; // an example of boxing

Console.WriteLine(a);

Console.WriteLine(a.GetType());

Console.WriteLine(a.ToString());

a = new ObjectTest();

ObjectTest classRef;

classRef = (ObjectTest)a;

Console.WriteLine(classRef.i);

}

}

/* Output

1

System.Int32

1

10

*/

  1. Boxing & Unboxing
裝箱是將值類型轉換爲 object 類型或由此值類型實現的任一接口類型的過程。 當 CLR 對值類型進行裝箱時,會將該值包裝到 System.Object 內部,再將後者存儲在託管堆上。取消裝箱將從對象中提取值類型.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章