在 C# 中,變量分爲以下幾種類型:
1.值類型(Value types)
2.引用類型(Reference types)
3.指針類型(Pointer types)
值類型變量可以直接分配給一個值。它們是從類 System.ValueType 中派生的。
值類型直接包含數據。比如 int、char、float,它們分別存儲數字、字符、浮點數。當您聲明一個 int 類型時,系統分配內存來存儲值。
下表列出了 C# 2010 中可用的值類型:
如需得到一個類型或一個變量在特定平臺上的準確尺寸,可以使用 sizeof 方法。表達式 sizeof(type) 產生以字節爲單位存儲對象或類型的存儲尺寸。下面舉例獲取任何機器上 int 類型的存儲尺寸:
引用類型不包含存儲在變量中的實際數據,但它們包含對變量的引用。
換句話說,它們指的是一個內存位置。使用多個變量時,引用類型可以指向一個內存位置。如果內存位置的數據是由一個變量改變的,其他變量會自動反映這種值的變化。內置的 引用類型有:object、dynamic 和 string。
對象(Object)類型 是 C# 通用類型系統(Common Type System - CTS)中所有數據類型的終極基類。Object 是 System.Object 類的別名。所以對象(Object)類型可以被分配任何其他類型(值類型、引用類型、預定義類型或用戶自定義類型)的值。但是,在分配值之前,需要先進行類型轉換。
當一個值類型轉換爲對象類型時,則被稱爲 裝箱;另一方面,當一個對象類型轉換爲值類型時,則被稱爲 拆箱。
字符串(String)類型 允許您給變量分配任何字符串值。字符串(String)類型是 System.String 類的別名。它是從對象(Object)類型派生的。字符串(String)類型的值可以通過兩種形式進行分配:引號和 @引號。
例如:
字符串中可以任意換行,換行符及縮進空格都計算在字符串長度之內。