C++ では、次のことができます。
struct {
#if defined (BIGENDIAN)
uint32_t h;
uint32_t l;
#else
uint32_t l;
uint32_t h;
#endif
} dw;
さて、C# ではそれほど単純ではありません。BigEndian をテストする方法がありますが、コンパイル時に構造体を定義する方法があります。C# で同じ効果を得るにはどうすればよいでしょうか? 「BoardBig」や「BoardLittle」などのクラスを作成し、ファクトリを使用して、IsBigEndian チェックに基づいて必要なクラスを取得できると考えていました。_WIN64 チェックでは、「Position_64」や「Position_32」などのクラスを使用できます。これは良いアプローチですか?C# は #define IsBigEndian 1 などのステートメントを定義できないため、どうすればよいかわかりません。