c#利用宏定义调试代码
#define
使用?#define?來定義符號。?將符號用作傳遞給?#if?指令的表達式時,該表達式的計算結果為?true,如以下示例所示:
#define DEBUG說明
#define?指令不能用于聲明常量值,常量定義例:public const int value = 213;
?C# 中的常量最好定義為類或結構的靜態成員。?如果具有多個此類常量,請考慮創建一個單獨的“常量”類來容納它們。
符號可用于指定編譯的條件。?可通過?#if?或?#elif?測試符號。?還可以使用?conditional?屬性來執行條件編譯。
可以定義一個符號,但不能向符號分配值。?文件中必須先出現?#define?指令,才能使用并非同時也是預處理器指令的任何指示。
還可以通過?/define?編譯器選項來定義符號。?可以通過?#undef?取消定義符號。
使用?/define?或?#define?定義的符號與具有相同名稱的變量不沖突。?也就是說,變量名稱不應傳遞給預處理器指令,且符號僅能由預處理器指令評估。
使用?#define?創建的符號的作用域是在其中定義該符號的文件。
如以下示例所示,必須將?#define?指令放在文件頂部。
?#define DEBUG
//#define TRACE
#undef TRACE
using System;
public class TestDefine
{
static void Main()
{
#if (DEBUG)
Console.WriteLine("Debugging is enabled.");
#endif
#if (TRACE)
Console.WriteLine("Tracing is enabled.");
#endif
}
}
// Output:
// Debugging is enabled.
在項目屬性-》生成-》條件編譯符號作用等同,
利用宏定義
更方便的調試代碼
#define?DEBUG? ?// C#的宏定義必須出現在所有代碼之前。當前我們只讓DEBUG宏有效。
代碼用 #if DEBUG 包裹
?
#if DEBUGToolsPath = @"D:\workspace\shopstyle\tool"; #elseToolsPath = Environment.CurrentDirectory; #endif總結
以上是生活随笔為你收集整理的c#利用宏定义调试代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM 的 Finalization D
- 下一篇: 解决:VScode 汉化后 、设置中文后