更新:2007 年 11 月
C# 支援 struct 關鍵字,這是 C 語言的另一個原創項目,但是在 Java 中無法使用它。您可以將 struct 視為一個輕量型類別。雖然 structs 可以包含建構函式 (Constructor)、常數、欄位、方法、屬性、索引子 (Indexer)、運算子和巢狀型別,不過大多只用來封裝相關欄位的群組。因為結構 (Struct) 為實值型別 (Value Type),所以其配置方式比類別更有效率一些;structs 與類別不同之處在於,結構不能為抽象型別,而且不支援實作 (Implementation) 繼承。
在下列範例中,您使用 new 關鍵字初始化 struct,呼叫預設的無參數建構函式,然後設定執行個體的成員。
public struct Customer
{
public int ID;
public string Name;
public Customer(int customerID, string customerName)
{
ID = customerID;
Name = customerName;
}
}
class TestCustomer
{
static void Main()
{
Customer c1 = new Customer(); //using the default constructor
System.Console.WriteLine("Struct values before initialization:");
System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
System.Console.WriteLine();
c1.ID = 100;
c1.Name = "Robert";
System.Console.WriteLine("Struct values after initialization:");
System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
}
}
輸出
當我們編譯且執行上述程式碼時,它的輸出會顯示 struct 變數預設為已初始化。int 變數會初始化為 0,而 string 變數會初始化為空字串:
Struct values before initialization:
ID = 0, Name =
Struct values after initialization:
ID = 100, Name = Robert