C#中是否有任何方式使用#if指令將值與小於或大於運算符進行比較?C#能否使用#if比較小於或大於?的值
例子:
#if GAME_SDK_VERSION < 500
#else
#endif
編輯我看到重複的問題鏈接,但它並沒有明確闡述使用大於或小於符號我簡單的問題。我認爲這個問題很有價值,還有答案就是站在它自己的立場上。
C#中是否有任何方式使用#if指令將值與小於或大於運算符進行比較?C#能否使用#if比較小於或大於?的值
例子:
#if GAME_SDK_VERSION < 500
#else
#endif
編輯我看到重複的問題鏈接,但它並沒有明確闡述使用大於或小於符號我簡單的問題。我認爲這個問題很有價值,還有答案就是站在它自己的立場上。
不,你不能。引用自the docs:
與C和C++不同,不能將數值分配給符號; C#中的#if語句是布爾值,僅測試符號是否已被定義。
正如我所使用的是指「大於或等於X」符號的解決方法,例如用於3版本我所界定的東西的VER_GTE_1
,VER_GTE_2
和VER_GTE_3
效果。另一種方法是僅定義當前版本,並在#if
中使用一長串||
。
這對很大數字很快就不可行。也許最好的辦法是儘可能避免預處理器指令 - 我認爲C#比C/C++有更好的機會。
謝謝。現在我正在使用#if和||對於Unity版本來說,這個版本變得越來越大,特別是在版本如4.2和4.3之間的API更改等情況下。 – jjxtra
不,您只能定義編譯時間符號。它們沒有固有的價值。 –
爲什麼downvotes? –
[C#中的編譯時間檢查條件編譯符號(請參閱示例)?](http://stackoverflow.com/questions/3806738/compile-time-checking-of-conditional-compilation-symbols-in-c -sharp-see-example),也是http://stackoverflow.com/questions/3842590/how-do-i-set-a-conditional-compile-variable –