共用方式為


Struct (C# 與 Java 的比較)

更新: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

請參閱

工作

結構範例

概念

C# 程式設計手冊

參考

結構 (C# 程式設計手冊)

其他資源

Java 開發人員可用的 C# 程式設計語言