一.首先要明白debug與trace的區別:
1. debug.write和trace.write有什麼不同?何時應該使用哪乙個?
debug類提供一組幫助除錯**的方法和屬性。trace類提供一組幫助跟蹤**執行的方法和屬性,通俗的說就是為在不打斷程式的除錯或跟蹤下,用來記錄程式執行的過程。
debug只在debug狀態下會輸出,trace在release下也會輸出,在release下debug的內容會消失。
2. debug build和release build的區別,是否會有明顯的速度變化?請說明理由。
首先以乙個**說明問題:
專案debug
release
條件編譯常數
debug;trace
trace
優化**
false
true
輸出路徑
bin\debug
bin\release
生成除錯資訊
true
false
debug模式下生成的程式集為除錯版本,未經優化;在bin\debug\目錄中有兩個檔案,除了要生成的.exe或.dll檔案外,還有個.pdb檔案,這個.pdb檔案中就記錄了**中的斷點等除錯資訊;release模式下不包含除錯資訊,並對**進行了優化,\bin\release\目錄下只有乙個.exe或.dll檔案。在專案資料夾下除了bin外,還有個obj目錄。編譯是分模組編譯的,每個模組的編譯結果就儲存在了obj目錄下。最後會合併為乙個exe或者dll檔案儲存到bin之中。因為每次編譯都是增量編譯,也就是只重新編譯改變了的模組,所以這個obj的目錄的作用就是儲存這些小塊的編譯結果,加快編譯速度。
二.trace and bug sample
using system;
using system.diagnostics; //引入debug類所在命名空間
namespace traceanddebug
class testdebug
public static void testdebugmethod()
debug.listeners.add(new textwritertracelistener(console.out));
//將debug類輸出定向到控制台輸出
debug.autoflush = true;
//設定debug為自動輸出,即每次寫入後都呼叫listeners上呼叫flush
debug.indent();
//設定縮排
debug.writeline("debug writeline()");
//用debug輸出"debug writeline()"
console.writeline("console.writeline()");
//用console輸出"console.writeline()"
debug.unindent();
//取消縮排
textwritertracelistener(console.out));
//將trace類輸出定向到控制台輸出
= true;
//設定trace為自動輸出,即每次寫入後都呼叫listeners上呼叫flush
trace.indent();
//設定縮排
trace.writeline("trace writeline()");
//用trace輸出"trace writeline()"
console.writeline("console.writeline()");
//用console輸出"console.writeline()"
trace.unindent();
//取消縮排
console.read();
class program
static void main(string args)
testdebug.testdebugmethod();
三. c#將trace,debug資訊輸出到控制項上**)
主要實現方法,繼承tracelinster類,重寫構造引數,重寫write和writeline方法就可以了,具體**如下:
public class controltracelistener : tracelistener
public override void write(string message)
);}
public override void writeline(string message));}
private void sendstring(string msg)
}
C Trace類與Debug類條件編譯的使用
一.首先要明白debug與trace的區別 1.debug.write 和trace.write 有什麼不同?何時應該使用哪乙個?debug 類提供一組幫助除錯 的方法和屬性。trace 類提供一組幫助跟蹤 執行的方法和屬性,通俗的說就是為在不打斷程式的除錯或跟蹤下,用來記錄程式執行的過程。debu...
類值類與類指標類
類值類 行為像值的 class a a const a a ps new string a.ps i a.i 每個類物件有自己的乙份資源拷貝 a operator const a rhs a private string ps int i 一種優化拷貝賦值運算子的方法 copy and swap c...
類與類關係
表現為繼承或實現關係 is a 具體形式為類與類之間的繼承關係,介面與介面之間的繼承關係,類對介面的實現關係。指的是乙個類 稱為子類 子介面 繼承另外的乙個類 稱為父類 父介面 的功能,並可以增加它自己的新功能的能力,uml中實現用三角形箭頭和實線表示 指的乙個類實現介面 可以是多個 的功能,uml...