實值型別 (C# 參考)

實值型別包含兩個主要分類:

結構是在這些分類之內:

實值型別的主要功能

直接以實值型別為基礎的變數,可包含值。 指派一個實值型別變數給其他實值型別變數,會複製所包含的值。 這和參考型別變數的指派不同,參考型別變數的指派會複製物件的參考,但不會複製物件本身。

所有實值型別都是自 System.ValueType 隱含衍生而來。

不同於參考型別,您無法從實值型別衍生新型別。 然而,就像參考型別,結構可以實作介面。

不同於參考型別,實值型別不可包含 null 值。 不過,可為 Null 的型別功能允許將實值型別指派為 null。

每個實值型別都有隱含預設建構函式 (Constructor),來初始化此種型別的預設值。 如需實值型別預設值的詳細資訊,請參閱預設值表

簡單型別的主要功能

所有的簡單型別 (是 C# 語言所不可缺少的) 都是 .NET Framework System 型別的別名。 例如,intSystem.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

如需格式化數字型別輸出的詳細資訊,請參閱格式化數值結果表

請參閱

參考

C# 關鍵字

參考型別 (C# 參考)

概念

C# 程式設計手冊

其他資源

C# 參考

型別 (C# 參考)

型別參考表 (C# 參考)