構造体 (C# プログラミング ガイド)

更新 : 2007 年 11 月

構造体は、次のように struct キーワードで定義します。

public struct PostalAddress
{
    // Fields, properties, methods and events go here...
}

構造体は、構文上ではクラスとほとんど変わりませんが、次のようにクラスよりも制限されます。

  • 構造体宣言内では、const または static と宣言されているフィールド以外は初期化できません。

  • 構造体では、既定のコンストラクタ (パラメータなしのコンストラクタ) やデストラクタを宣言できません。

  • 構造体は、クラスや他の構造体を継承できません。

  • 構造体は、代入時にコピーされます。構造体を新しい変数に代入すると、すべてのデータがコピーされ、新しいコピーを変更しても、元のコピーのデータは変更されません。

  • 構造体は値型ですが、クラスは参照型です。

  • クラスとは異なり、構造体は new 演算子を使用せずにインスタンス化できます。

  • 構造体は、パラメータのあるコンストラクタを宣言できます。

  • 構造体は、他の構造体やクラスから継承できず、基本クラスになれません。すべての構造体が System.ValueType を直接継承し、System.ValueType は System.Object を継承します。

  • 構造体では、インターフェイスを実装できます。

  • 構造体は null 許容型として使用でき、null 値を割り当てることができます。

関連項目

詳細情報

参照

概念

C# プログラミング ガイド

構造体のデザイン

参照

クラスと構造体 (C# プログラミング ガイド)

クラス (C# プログラミング ガイド)