В 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 или что у вас, не знаю, что делать.