国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

如何使用 Debug 和 Trace 類

2024-07-21 02:30:29
字體:
來源:轉載
供稿:網友
 

本文介紹如何使用 debug 和 trace 類。microsoft .net framework 中提供了這兩個類。在應用程序開發期間或部署到產品后,可以使用這兩個類提供有關應用程序性能的信息。這兩個類只是 .net framework 中所提供配置功能的一部分。

 

要求下面的列表概括了推薦的硬件、軟件、網絡結構以及所需的 service pack:

• microsoft windows 2000 或 microsoft windows xp

• microsoft visual c# .net

本文還假定您熟悉程序調試。

 

方法說明

在使用 debug 類創建一個示例一節中介紹的步驟演示了如何創建使用 debug 類以提供有關程序執行信息的控制臺應用程序。

 

當程序運行時,您可以使用 debug 類的方法來生成消息,以幫助您監視程序執行順序、檢測故障或提供性能度量信息。默認情況下,debug 類產生的消息顯示在 visual studio 集成開發環境 (ide) 的“輸出”窗口中。

 

該代碼示例使用 writeline 方法生成后面帶有行結束符的消息。當您使用此方法生成消息時,每條消息在“輸出”窗口中均顯示為單獨的一行。

 

如果使用 debug 類的 assert 方法,那么只有在指定條件計算為 false 時,“輸出”窗口才顯示消息。該消息還在一個模式對話框中向用戶顯示。該對話框包括消息、項目名和 debug.assert 語句編號。該對話框還包括下列三個命令按鈕:

• 終止:應用程序停止運行。

• 重試:應用程序進入調試模式。

• 忽略:應用程序繼續。

用戶必須先單擊這些按鈕中的一個,然后應用程序才可以繼續。

 

您還可以指示從 debug 類向“輸出”窗口以外的目標進行輸出。debug 類有一個名為 listeners 的集合,該集合包括一些 listener 對象。

 

每個 listener 對象都監視 debug 輸出并使輸出指向指定的目標。

 

listener 集合中的每個 listener 都接收 debug 類生成的任何輸出。請使用 textwritertracelistener 類定義 listener 對象。可以通過 textwritertracelistener 類的構造函數為該類指定目標。

 

一些可能的輸出目標包括: • 使用 system.console.out 屬性指定“控制臺”窗口作為輸出目標。

• 使用 system.io.file.createtext("filename.txt") 語句指定文本文件 (.txt) 作為輸出目標。

創建 textwritertracelistener 對象后,必須將該對象添加到 debug.listeners 集合才可接收調試輸出。

 

 

使用 debug 類創建一個示例1. 啟動 visual studio .net。

2. 新建一個名為 coninfo 的新 visual c# .net 控制臺應用程序項目。將創建 class1。

3. 在 class1 的頂部添加以下名稱空間。

using system.diagnostics;

 

4. 要初始化變量以使其包含產品的相關信息,請將下面的聲明語句添加到 main 方法:

string sprodname = "widget";

int iunitqty = 100;

double dunitcost = 1.03;

 

5. 將類生成的消息指定為 writeline 方法的第一個輸入參數。按 ctrl+alt+o 組合鍵以確保“輸出”窗口可見。

debug.writeline("debug information-product starting ");

 

6. 為了清晰易讀,請使用 indent 方法在“輸出”窗口中縮進后面的消息:

debug.indent();

 

7. 要顯示所選變量的內容,請使用 writeline 方法,如下所示:

debug.writeline("the product name is " + sprodname);

debug.writeline("the available units on hand are" + iunitqty.tostring());

debug.writeline("the per unit cost is " + dunitcost.tostring());

 

8. 您還可以使用 writeline 方法顯示現有對象的名稱空間和類名稱。例如,下面的代碼在“輸出”窗口中顯示 system.xml.xmldocument 命名空間:

system.xml.xmldocument oxml = new system.xml.xmldocument();

debug.writeline(oxml);

 

9. 要整理輸出,可以包括一個類別作為 writeline 方法的第二個可選的輸入參數。如果您指定一個類別,則“輸出”窗口消息的格式為“類別:消息”。例如,以下代碼的第一行在“輸出”窗口中顯示“field:the product name is widget”:

debug.writeline("the product name is " + sprodname,"field");

debug.writeline("the units on hand are" + iunitqty,"field");

debug.writeline("the per unit cost is" + dunitcost.tostring(),"field");

debug.writeline("total cost is " + (iunitqty * dunitcost),"calc");

 

10. 僅在使用 debug 類的 writelineif 方法將指定條件計算為 true 時,“輸出”窗口才可以顯示消息。將要計算的條件是 writelineif 方法的第一個輸入參數。writelineif 的第二個參數是僅在第一個參數的條件計算為真時才顯示的消息。

debug.writelineif(iunitqty > 50, "this message will appear");

debug.writelineif(iunitqty < 50, "this message will not appear");

 

 

11. 使用 debug 類的 assert 方法,使“輸出”窗口僅在指定條件計算為 false 時才顯示消息:

debug.assert(dunitcost > 1, "message will not appear");

debug.assert(dunitcost < 1, "message will appear since dunitcost < 1 is false");

 

 

12. 為“控制臺”窗口 (tr1) 和名為 output.txt (tr2) 的文本文件創建 textwritertracelistener 對象,然后將每個對象添加到 debug listeners 集合中:

textwritertracelistener tr1 = new textwritertracelistener(system.console.out);

debug.listeners.add(tr1);

 

textwritertracelistener tr2 = new textwritertracelistener(system.io.file.createtext("output.txt"));

debug.listeners.add(tr2);

 

13. 為了清晰易讀,請使用 unindent 方法去除 debug 類為后續消息生成的縮進。當您將 indent 和 unindent 兩種方法一起使用時,讀取器可以將輸出分成組。

debug.unindent();

debug.writeline("debug information-product ending");

 

14. 為了確保每個 listener 對象收到它的所有輸出,請為 debug 類緩沖區調用 flush 方法:

debug.flush();

 

 

使用 trace 類 您還可以使用 trace 類生成監視應用程序執行的消息。trace 和 debug 類共享大多數相同的方法來生成輸出,這些方法包括: • writeline

• writelineif

• indent

• unindent

• assert

• flush

您可以在同一應用程序中分別或同時使用 trace 和 debug 類。在一個“調試解決方案配置”項目中,trace 和 debug 兩種輸出均為活動狀態。該項目從這兩個類為 listener 對象生成輸出。但是,“發布解決方案配置”項目僅從 trace 類生成輸出。該“發布解決方案配置”項目忽略任何 debug 類方法調用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灌南县| 榕江县| 临桂县| 安溪县| 抚顺县| 丽江市| 江油市| 定远县| 年辖:市辖区| 龙海市| 榆树市| 会理县| 通道| 南阳市| 德兴市| 阳春市| 巴林右旗| 齐齐哈尔市| 喀喇沁旗| 裕民县| 英德市| 息烽县| 门源| 和顺县| 怀仁县| 佳木斯市| 修武县| 龙川县| 海宁市| 侯马市| 马公市| 宾阳县| 东乡县| 阿图什市| 宝兴县| 赤峰市| 新疆| 巫溪县| 武清区| 定陶县| 襄城县|