C#の構造体

C#にはクラスとよく似た機構の構造体というものがあります。

構造体とクラスの違いはいくつかありますが、構造体は値型であること、new演算子を使用せずにインスタンス化できるなどの特徴があります。

他にも構造体には継承の機能がなく、継承するということが出来ません。
また継承元になることもできません。ただし、インタフェースの実装は可能です。

構造体の定義

構造体を定義するには予約語の struct を使います。

struct 構造体名 {
   フィールドおよびメソッドを定義
}

クラスとの定義方法の違いは「class」か「struct」かだけの違いで、定義方法はほとんど変わりません。

構造体の作成

構造体はnewを使用して作成することもできますし、newを用いずに作成することもできます。

newを使用した構造体の作成

public struct Person {
    public string name;
    public int age;

    public Person(string n, int a) {
        name = n;
        age = a;
    }
}

// newを使った構造体の作成
Person p = new Person("たなか", 20);

newを用いない構造体の作成

public struct Person {
    public string name;
    public int age;

    public Person(string n, int a) {
        name = n;
        age = a;
    }
}

// newを用いない構造体の作成
Person p;
p.name = "たなか";
p.age = 20;


inserted by FC2 system