一.首先要明白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
program
} }
三. 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類提供一組幫助跟蹤 執行的方法和屬性,通俗的說就是為在不打斷程式的除錯或跟蹤下,用來記錄程式執行的過程。debug只在d...
類值類與類指標類
類值類 行為像值的 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...