構造体 (C# プログラミング ガイド)
構造体は、次のように struct キーワードで定義します。
public struct PostalAddress
{
// Fields, properties, methods and events go here...
}
構造体は、構文上ではクラスとほとんど変わりませんが、次のようにクラスよりも制限されます。
構造体宣言内では、const または static と宣言されているフィールド以外は初期化できません。
構造体では、既定のコンストラクター (パラメーターなしのコンストラクター) やデストラクターを宣言できません。
構造体は、代入時にコピーされます。構造体を新しい変数に代入すると、すべてのデータがコピーされ、新しいコピーを変更しても、元のコピーのデータは変更されません。この点は、Dictionary<string, myStruct> などの値の型のコレクションを使用する際に重要です。
構造体は値型ですが、クラスは参照型です。
クラスとは異なり、構造体は new 演算子を使用せずにインスタンス化できます。
構造体は、パラメーターのあるコンストラクターを宣言できます。
構造体は、他の構造体やクラスから継承できず、基本クラスになれません。すべての構造体が System.ValueType を直接継承し、System.ValueType は System.Object を継承します。
構造体では、インターフェイスを実装できます。
構造体は null 許容型として使用でき、null 値を割り当てることができます。
関連項目
詳細情報