1
我可以在C#中使用#define
preprocessor directive里面的#if
和#endif
吗?在C#中的#if中使用#define预处理器指令是否有效#
例如
#if !SILVERLIGHT && !__ANDROID__ && !__IOS__
#define SupportsMutex
#endif
它看起来像它的作品,但我需要确定。有很多关于这方面的文章,但大多数情况下,在C语言环境而不是C#环境下,C#中的预处理器指令更为有限。
Visual Studio的突出显示似乎支持它,但根据语言/编译器规范它真的有效吗?
的This MSDN page给出了如下注释:
#define指令不能被用于声明如在C和C通常所做++恒定值。 C#中的常量最好定义为类或结构的静态成员。如果你有几个这样的常量,可以考虑创建一个单独的“常量”类来保存它们。
我需要这个,因为多次使用#if !SILVERLIGHT && !__ANDROID__ && !__IOS__
很难管理。
当然,我们也可以将SupportsMutex
添加到项目的“条件编译符号”中,但是这更难以管理且不太透明。
谢谢!赶紧找到! – Julian