在 C# 中,#
符號引入預處理指令,用於在編譯期間控制代碼的特定行為。以下是 C# 中 #
指令的主要用法:
1. #define
和 #undef
#define
:定義一個符號,用於控制條件編譯。#undef
:取消一個已定義的符號。
→C# 中 #define 和 #undef 指令的使用:基礎與應用
2. #if
、#elif
、#else
和 #endif
- 控制條件編譯,根據符號是否被定義來決定哪些代碼會被編譯。
注意:#if
、#elif
、#else
和 #endif
依賴於符號的定義(1和2是組合出現的),這些符號通常由 #define
指令來設定,或者在項目設置中配置為條件編譯符號。
3. #warning
和 #error
#warning
:生成編譯時警告,提醒開發者注意。#error
:生成編譯錯誤,阻止編譯,用於強制解決問題。
→C# 中的 #warning 和 #error 指令:用法與場景簡介
4. #region
和 #endregion
- 將代碼分組,便於在編輯器中折疊,但不影響編譯。
評價:最常用的功能,僅為摺叠代碼。
5. #pragma
#pragma warning disable/restore
:禁用或恢復特定警告。#pragma checksum
:用於指定文件校驗和,常見於 ASP.NET 項目中。(通常自動生成,無需手動添加)
評價:輔助性指令,主要用於編譯控制中的靈活調整,能避免不必要的警告影響開發。
關於1和2再舉例
假設你在項目裏預定義了指令Trump;Harris:
#undef Harris
using System;
namespace test_
{
internal class Program
{
static void Main(string[] args)
{
#if Harris
Console.WriteLine("HARRIS THE WINNER!");
#endif
#if Trump
Console.WriteLine("TRUMP THE WINNER!");
#endif
}
}
}
那麽這份代碼只會輸出"TRUMP THE WINNER!"