c#利用宏定义调试代码
#define
使用?#define?來定義符號(hào)。?將符號(hào)用作傳遞給?#if?指令的表達(dá)式時(shí),該表達(dá)式的計(jì)算結(jié)果為?true,如以下示例所示:
#define DEBUG說明
#define?指令不能用于聲明常量值,常量定義例:public const int value = 213;
?C# 中的常量最好定義為類或結(jié)構(gòu)的靜態(tài)成員。?如果具有多個(gè)此類常量,請(qǐng)考慮創(chuàng)建一個(gè)單獨(dú)的“常量”類來容納它們。
符號(hào)可用于指定編譯的條件。?可通過?#if?或?#elif?測(cè)試符號(hào)。?還可以使用?conditional?屬性來執(zhí)行條件編譯。
可以定義一個(gè)符號(hào),但不能向符號(hào)分配值。?文件中必須先出現(xiàn)?#define?指令,才能使用并非同時(shí)也是預(yù)處理器指令的任何指示。
還可以通過?/define?編譯器選項(xiàng)來定義符號(hào)。?可以通過?#undef?取消定義符號(hào)。
使用?/define?或?#define?定義的符號(hào)與具有相同名稱的變量不沖突。?也就是說,變量名稱不應(yīng)傳遞給預(yù)處理器指令,且符號(hào)僅能由預(yù)處理器指令評(píng)估。
使用?#define?創(chuàng)建的符號(hào)的作用域是在其中定義該符號(hào)的文件。
如以下示例所示,必須將?#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.
在項(xiàng)目屬性-》生成-》條件編譯符號(hào)作用等同,
利用宏定義
更方便的調(diào)試代碼
#define?DEBUG? ?// C#的宏定義必須出現(xiàn)在所有代碼之前。當(dāng)前我們只讓DEBUG宏有效。
代碼用 #if DEBUG 包裹
?
#if DEBUGToolsPath = @"D:\workspace\shopstyle\tool"; #elseToolsPath = Environment.CurrentDirectory; #endif總結(jié)
以上是生活随笔為你收集整理的c#利用宏定义调试代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM 的 Finalization D
- 下一篇: c# char unsigned_dll