2010-06-12 232 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