クラスは参照型ですが、構造体は値型です。 参照型はヒープ上に割り当てられ、メモリ管理はガベージ コレクターによって処理されます。 値型はスタックまたはインライン上に割り当てられ、スコープの外に出たときに解放されます。 一般に、割り当てや解放は値型の方が簡単です。 ただし、大量のボックス化とボックス化解除が必要なシナリオで使用すると、参照型と比べてパフォーマンスが低くなります。 詳細については、「ボックス化とボックス化解除 (C# プログラミング ガイド)」を参照してください。 値型と参照型の詳細については、「共通型システム」を参照してください。 型のインスタンスが小さく有効期間が一般に短い場合や、型のインスタンスが一般に他のオブジェクト内に埋め込まれる場合は、クラスではなく、構造体を定義することを検討します。 型が次に挙げるすべての特性を持たない場合、構造体は定義しません。 プリミティブ型