Share via


/define (C# 編譯器選項)

/define 選項會將 name 定義為程式中所有原始程式碼檔的符號。

/define:name[;name2]

引數

  • name, name2
    您要定義的一或多個符號之名稱。

備註

/define 選項的作用與使用 #define 前置處理器指示詞 (Preprocessor Directive) 相同,不同之處在於編譯器選項對專案中的所有檔案都有效。 直到原始程式檔 (Source File) 中的 #undef 指示詞移除符號的定義之前,符號在原始程式檔中都會維持已定義狀態。 使用 /define 選項時,某個檔案中的 #undef 指示詞不會對專案中的其他原始程式碼檔造成影響。

此選項建立的符號可以與 #if#else#elif#endif 搭配使用,為原始程式檔進行條件式編譯。

/d/define 的簡短形式。

您可以利用 /define,以分號或逗號區隔各個符號名稱,來定義多個符號。 例如:

/define:DEBUG;TUESDAY

C# 編譯器本身不會定義任何您可以在原始程式碼中使用的符號或巨集;所有符號定義都必須是使用者定義。

注意事項注意事項

C# #define 不允許指定數值給符號,這點和 C++ 語言相同。 例如,#define 不能用來建立巨集或定義常數。 如果您需要定義常數,請使用 enum 變數。 如果您想要建立 C++ 樣式巨集,請考慮其他選擇,如泛型。 由於巨集非常可能發生錯誤,因此 C# 不允許使用巨集,而是提供較為安全的選擇。

在 Visual Studio 開發環境中設定這個編譯器選項

  1. 開啟專案的 [屬性] 頁面。

  2. 在 [建置] 索引標籤的 [條件式編譯的符號] 方塊中,輸入要定義的符號。 例如,若您要使用下列程式碼範例,只要在文字方塊中輸入 xx 即可。

如需如何以程式設計方式設定這個編譯器選項的詳細資訊,請參閱 DefineConstants

範例

// preprocessor_define.cs
// compile with: /define:xx
// or uncomment the next line
// #define xx
using System;
public class Test 
{
    public static void Main() 
    {
        #if (xx) 
            Console.WriteLine("xx defined");
        #else
            Console.WriteLine("xx not defined");
        #endif
    }
}

請參閱

其他資源

C# 編譯器選項

專案屬性 (Visual Studio)