2015-05-20 55 views
3

試圖在Visual Studio 2012在visual studio中指定預處理指令的位置?

#define FLAG 
.... 
#endif 

但不知道,其中包括此FLAG在Visual Studio中定義一個預處理指令 - C#。我記得在C++項目中指定了這樣的東西。

有什麼想法?

+1

C#沒有預處理器。 –

+2

項目屬性 - >構建 - >條件編譯符號 – DavidG

+0

@RobertHarvey:我只剩下使用'debug'和'release'標誌了嗎?有沒有其他解決方法? –

回答

9

你有兩個選擇:

  1. 的代碼文件級別定義它。在文件的開頭寫入#define FLAGdefine指令前不能放置任何其他內容(註釋和空白行除外)。正如Ron Beyer指出的那樣,文件中定義的指令只存在於該文件中。

  2. 在項目級定義它。右鍵單擊解決方案資源管理器中的項目,選擇「屬性」,然後選擇「構建」選項卡,然後查看「條件編譯符號」。您可以在此處定義幾個以逗號分隔的符號:FLAG,FOO,BAR。請注意,此符號列表取決於項目配置(在同一選項卡中有一個配置選擇器)。

而作爲EBrown poins出來,define不工作在C#中同樣的方式,它在C.在C#中,你只需要聲明的是,符號存在,但你不能將值分配給它。因此,這些符號的唯一用途是#if FLAG指令和the Conditional attribute

+0

您應該注意,在代碼文件級別定義它只定義該代碼文件的標誌,而不是在項目範圍內進行。它背離了C++的工作原理。 –

+0

@RonBeyer好點,回答更新。 – Konamiman

+0

另請注意,您無法爲這些定義指定*值*。你只能指定*定義本身。* –