デフォルトでは、C# の構造体は、基本的に、これらのタイプのオブジェクトは COM 相互運用に一般的に使用され、それらのフィールドは定義された順序のままである必要があるという理由で実装されてい[StructLayout( LayoutKind.Sequential )]
ます。クラスがLayoutKind.Auto
定義されています。
私の質問は、構造体を明示的に指定する必要が[StructLayout( LayoutKind.Auto )]
あります。これにより、デフォルトよりも利点が得られますか? つまり、構造体がstackで初期化されている場合、違いはありますか?つまり、GCは構造体を移動する必要はありませんか? また、構造体がヒープ上で初期化されている場合、つまりクラスの一部である場合に役立ちますか?