實值型別 (C# 參考)
更新:2007 年 11 月
實值型別包含兩個主要分類:
結構是在這些分類之內:
實值型別的主要功能
直接以實值型別為基礎的變數,可包含值。指派一個實值型別變數給其他實值型別變數,會複製所包含的值。這和參考型別變數的指派不同,參考型別變數的指派會複製物件的參考,但不會複製物件本身。
所有實值型別都是自 System.ValueType 隱含衍生而來。
不同於參考型別,您可以從實值型別衍生新型別。然而,就像參考型別,結構可以實作介面。
不同於參考型別,實值型別不可包含 null 值。不過,可為 Null 的型別功能允許將實值型別指派為 null。
每個實值型別都有隱含預設建構函式 (Constructor),來初始化此種型別的預設值。如需實值型別預設值的詳細資訊,請參閱預設值表。
簡單型別的主要功能
所有的簡單型別 (是 C# 語言所不可缺少的) 都是 .NET Framework System 型別的別名。例如,int 是 System.Int32 的別名。如需別名的完整清單,請參閱內建型別資料表 (C# 參考)。
運算元皆為簡單型別常數的常數運算式會在編譯 (Compilation) 時期評估。
簡單型別可以使用常值來初始化。例如,'A' 是 char 型別的常值,而 2001 是 int 型別的常值。
初始化實值型別
在 C# 中,區域變數必須初始化之後才能使用。例如,您可能沒有初始設定而宣告區域變數,如下列範例所示:
int myInt;
在初始化之前您不能使用它。您可以使用下列陳述式將其初始化:
myInt = new int(); // Invoke default constructor for int type.
這個陳述等同於下列陳述式:
myInt = 0; // Assign an initial value, 0 in this example.
當然,您可以在同一個陳述式裡宣告和初始化,如下列範例所示:
int myInt = new int();
- 或 -
int myInt = 0;
使用 new 運算子呼叫特定型別的預設建構函式,並且將預設值指派給變數。在上述的範例裡,預設建構函式將值 0 指派給 myInt。如需藉由呼叫預設建構函式來指派值的詳細資訊,請參閱預設值表。
針對使用者定義型別,請使用 new 來叫用 (Invoke) 預設建構函式。例如,下列陳述式叫用 Point 結構的預設建構函式:
Point p = new Point(); // Invoke default constructor for the struct.
在這個呼叫之後,此結構將被視為已經明確的指派了,也就是,它的所有成員都已經初始化為它們的預設值。
如需 new 運算子的詳細資訊,請參閱 new。
如需格式化數字型別輸出的詳細資訊,請參閱格式化數值結果表。