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;