2010-06-12 230 views
4

我目前正在爲本地公司創建客戶應用程序。我有一個datagridview鏈接到客戶表,並且我試圖鏈接它,以便正確處理更新,插入和刪除。我對c#非常陌生,所以我從基礎開始(比如大約2天前我什麼都不知道 - 儘管我知道vb.net,Java和其他幾種語言..)。顯示控制檯輸出?

任何從我所瞭解的任何東西輸出通過Debug.WriteLine應該只出現在調試模式(常識真的),但任何輸出通過Concole.WriteLine應出現,無論是否在調試模式。不過,我已經檢查了即時和輸出窗口,並且在正常模式下沒有任何輸出。有沒有人有任何想法,爲什麼這是?

編輯:我有用於單擊單元格的事件處理程序 - 它應該輸出CellClicked,並在點擊單元格時將gridview設置爲不可見。後者按照我的模式工作,但CellClicked僅在調試模式下輸出。我正在使用Console.WriteLine(「CellClicked」)。

編輯:似乎我可能已經解決了它 - 我只是在項目設置頁面中將輸出設置爲控制檯應用程序。它現在打開一個命令行窗口以及一個窗體窗體,但是當我編譯進行分發時,我可以再次更改輸出。謝謝您的幫助。

回答

7

Console.WriteLine()輸出到控制檯窗口在一個控制檯應用程序的情況下。您可能正在尋找Trace.WriteLine()

+0

跟蹤顯然是一種調試形式 - 它不是我想要做的調試..使用調試模式增加了加載應用程序所花費的時間(至少我不能看到它減少了時間.. ),所以我想盡可能避免使用調試模式。我想立即輸出奇數語句,然後檢查它是否在正確的時間到達特定點,而不使用調試模式。 – ClarkeyBoy 2010-06-12 15:17:13

+1

您可以啓用和禁用跟蹤。您的應用程序無需處於調試模式即可。 – starskythehutch 2010-06-12 15:22:03

+0

@ClarkeyBoy:你所描述的是完全跟蹤的是什麼。您不必在調試模式下啓用跟蹤應用程序... – 2010-06-12 16:10:30

0

您可以轉到工具|選項|查找調試,常規,選擇將所有輸出窗口文本重定向到立即窗口,或嘗試將控制檯預期的輸出記錄到文件並在其中查看。

3

獲取寫入到Visual Studio輸出窗口的Console.Write/Line()的輸出是Visual Studio宿主進程的一個功能。項目+屬性,調試選項卡。如果您在沒有調試器的情況下運行應用程序,則不會使用該託管進程。

使用Console.WriteLine進行調試並不是最好的解決方案。該代碼仍將在您的發佈版本中運行,並花時間格式化輸出字符串。並阻止JIT優化器在生成最高效的機器碼方面做得很好。輸出將落在位桶中,沒有什麼可以實際寫入的。

而且這是不必要的,調試器給你更好的工具來找出你的程序中發生了什麼。花一些時間熟悉它的功能。如果你想知道事件處理程序是否運行,只需設置一個斷點即可。這樣的斷點甚至可以在不實際中斷的情況下跟蹤輸出。右鍵點擊紅點,點擊「點擊時」並使用「打印消息」選項。

+0

+1爲「當打」=>「打印消息」選項:) – 2012-04-20 21:25:51

1

我想你會喜歡追蹤基礎設施比Console.WriteLine好很多。追蹤爲跟蹤消息的去向提供了許多不同的選項,並且可以打開或關閉它們。您還可以設置不同級別的跟蹤輸出,以便您可以調整實際完成的記錄數量。 .NET中內置的跟蹤非常靈活,非常值得投資學習。

這裏有幾個引用,以幫助您開始:

HTH!
Chris