【问题标题】:Can C# use #if to compare a value with less than or greater than?C# 可以使用#if 来比较小于或大于的值吗?
【发布时间】:2016-06-21 18:07:26
【问题描述】:

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

例子:

#if GAME_SDK_VERSION < 500

#else

#endif

EDIT 我看到了重复的问题链接,但它并没有清楚地解决我使用大于或小于符号的简单问题。我认为这个问题很有价值,连同给出的答案可以独立存在。

【问题讨论】:

标签: c# .net preprocessor-directive


【解决方案1】:

不,你不能。引用the docs:

与 C 和 C++ 不同,您不能将数值分配给符号; C# 中的#if 语句是布尔值,仅测试符号是否已定义。

作为一种解决方法,我使用了表示“大于或等于 X”的符号,例如,对于版本 3,我将定义 VER_GTE_1VER_GTE_2VER_GTE_3 的效果。另一种选择是仅定义当前版本并在#if 中使用一长串||

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

【讨论】:

  • 谢谢。现在我使用 #if 和 ||对于 Unity 版本,它变得很大,尤其是在 4.2 和 4.3 等版本之间发生 API 更改时。
猜你喜欢
  • 1970-01-01
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多