C#可以使用#if来比较小于或大于的值吗?

时间:2016-03-07 23:54:19

标签: c# .net preprocessor-directive

C#中是否有任何方法可以使用#if指令将值与小于或大于运算符进行比较?

示例:

#if GAME_SDK_VERSION < 500

#else

#endif

编辑我看到了重复的问题链接,但它没有明确解决我使用大于或小于符号的简单问题。我认为这个问题很有价值,而且答案也是独立的。

1 个答案:

答案 0 :(得分:2)

不,你不能。引自the docs

  

与C和C ++不同,您无法为符号指定数值; C#中的#if语句是布尔值,只测试符号是否已定义。

作为一种解决方法,我使用了大于或等于X&#34;的符号,例如对于版本3,我会定义VER_GTE_1VER_GTE_2的效果和VER_GTE_3。另一种方法是仅定义当前版本,并在||中使用长#if列表。

对于非常大的数字,这很快就会变得不可行。也许最好的方法是尽可能避免预处理程序指令 - 我认为C#比C / C ++有更好的机会。