[C#] 如何善用「偵錯模式」- 使用Conditional屬性設定

[C#] 如何善用「偵錯模式」- 使用Conditional屬性設定

前幾天翻閱保哥的文章看到這一篇

如何善用「偵錯模式」進行 ASP.NET 網站或 .NET 程式開發

今天看到Conditional屬性設定和#if DEBUG的方法有異曲同工之妙

 

首先增加一個void方法

在該方法上方增加Conditional屬性如下

**要引用System.Diagnostics命名空間**

[Conditional("DEBUG")]
private void DebugMsg(string s)
{
    MessageBox.Show(s);
}

 

假設我在Form Load裡呼叫該方法

private void Form1_Load(object sender, EventArgs e)
{
    DebugMsg("Hello");
    MessageBox.Show("World");
}

 

然後選擇Debug組態來建置啟動方案

image

image

image

 

關掉視窗

改以Release組態來啟動方案

image

 

 

 

image

 

上面可以看到加了[Conditional("DEBUG")]屬性的方法

在Release的時候就不會呼叫他了

(正確一點說就是編譯的時候會自動忽略這個方法的呼叫, 不過方法本身還是會被編譯進組件裡)

 

有興趣的人可以稍微看一下MSDN裡更詳細的說明

http://msdn.microsoft.com/zh-tw/library/aa664622%28VS.71%29.aspx