【发布时间】:2011-05-24 03:02:22
【问题描述】:
在 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 之类的语句,因此不知道该怎么做。
【问题讨论】:
标签: c# c-preprocessor preprocessor-directive