次の方法で共有


構造体 (C# と Java の比較)

更新 : 2007 年 11 月

C# は、struct キーワードをサポートします。C で導入されたこのアイテムも Java では使用できません。struct は簡易クラスと考えることができます。structs には、コンストラクタ、定数、フィールド、メソッド、プロパティ、インデクサ、演算子、および入れ子にされた型を含めることができますが、これらは通常、関連フィールドのグループをカプセル化するためだけに使用されます。構造体は値型なので、クラスよりも若干効果的に割り当てることができます。structs は抽象化できず、実装継承をサポートしない点で、クラスとは異なっています。

次の例では、struct を new キーワードで初期化し、パラメータを持たない既定のコンストラクタを呼び出してから、インスタンスのメンバを設定します。

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# プログラミング言語