在 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 或 what have ya 这样的语句,所以不知道该怎么做。