全面介紹C#預(yù)處理
C#預(yù)處理控制行
特性#error和#warning使得代碼可以把警告和錯(cuò)誤的條件報(bào)告給編譯程序,來(lái)查出標(biāo)準(zhǔn)的編譯時(shí)的警告和錯(cuò)誤。
- pp-con trol-line:
- #error pp-message
- #warning pp-message
- pp-message:
- pp-tokensopt
舉個(gè)例子幫助大家理解
- #warning Code review needed before check-in
- #define DEBUG
- #if DEBUG && RETAIL
- #error A build can't be both debug and retail!
- #endif
- class Class1
- {…}
這將總是產(chǎn)生警告(“Code review needed before check-in"),并且如果予處理修飾符DEBUG 和RETAIL 都被定義,還會(huì)產(chǎn)生錯(cuò)誤。
C#預(yù)處理標(biāo)識(shí)符
C#預(yù)處理標(biāo)識(shí)符使用和規(guī)則C#標(biāo)識(shí)符文法相似的文法:
- pp -identifi er:
- pp-ava ilable-identifier
- pp-ava ilable-identifi er:
- A pp-identif ier-or-keyword that is not true or false
- pp-id entif ier-or-keyword:
- identifi er-start-character identif ier-part-characters opt
true 和false 符號(hào)不是合法的預(yù)定義指示符,所以不能用于#define 的定義和#undef 的反定義。
C#預(yù)處理表達(dá)式
操作符!, ==, !=, && 和||是允許的預(yù)定義表達(dá)式。在預(yù)定義表達(dá)式中,圓括號(hào)可以用來(lái)分組。
- pp-expression:
- pp-equality-expression
- pp-pr imary-expression:
- true
- false
- pp -identifi er
- ( pp-expression )
- pp-unary-expression:
- pp-pr imary-expression
- ! pp-unary-expression
- pp-equality-expression:
- pp-equality-expression == pp-logical-and-expression
- pp-equality-expression != pp-logical-and-expression
- pp-logical-and-expression:
- pp-unary-expression
- pp-logical-and-expression && pp-unary-expression
- pp-logical-or-expression:
- pp-logical-and-expression
- pp-logical-or-expression || pp-logical-and-expression
【編輯推薦】