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