C#中是否有任何方法可以使用#if指令将值与小于或大于运算符进行比较?
示例:
#if GAME_SDK_VERSION < 500
#else
#endif
编辑我看到了重复的问题链接,但它没有明确解决我使用大于或小于符号的简单问题。我认为这个问题很有价值,而且答案也是独立的。
答案 0 :(得分:2)
不,你不能。引自the docs:
与C和C ++不同,您无法为符号指定数值; C#中的#if语句是布尔值,只测试符号是否已定义。
作为一种解决方法,我使用了大于或等于X&#34;的符号,例如对于版本3,我会定义VER_GTE_1
,VER_GTE_2
的效果和VER_GTE_3
。另一种方法是仅定义当前版本,并在||
中使用长#if
列表。
对于非常大的数字,这很快就会变得不可行。也许最好的方法是尽可能避免预处理程序指令 - 我认为C#比C / C ++有更好的机会。