2016-03-07 65 views
3

C#中是否有任何方式使用#if指令將值與小於或大於運算符進行比較?C#能否使用#if比較小於或大於?的值

例子:

#if GAME_SDK_VERSION < 500 

#else 

#endif 

編輯我看到重複的問題鏈接,但它並沒有明確闡述使用大於或小於符號我簡單的問題。我認爲這個問題很有價值,還有答案就是站在它自己的立場上。

+1

不,您只能定義編譯時間符號。它們沒有固有的價值。 –

+1

爲什麼downvotes? –

+1

[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 –

回答

2

不,你不能。引用自the docs

與C和C++不同,不能將數值分配給符號; C#中的#if語句是布爾值,僅測試符號是否已被定義。

正如我所使用的是指「大於或等於X」符號的解決方法,例如用於3版本我所界定的東西的VER_GTE_1VER_GTE_2VER_GTE_3效果。另一種方法是僅定義當前版本,並在#if中使用一長串||

這對很大數字很快就不可行。也許最好的辦法是儘可能避免預處理器指令 - 我認爲C#比C/C++有更好的機會。

+0

謝謝。現在我正在使用#if和||對於Unity版本來說,這個版本變得越來越大,特別是在版本如4.2和4.3之間的API更改等情況下。 – jjxtra

相關問題