显示控制台输出?

4
我目前正在为一家当地公司创建客户应用程序。我有一个与客户表相关联的数据网格视图,并且我正在尝试将其连接起来,以便正确处理更新、插入和删除。我对C#非常新手,所以我从基础开始(就像两天前我什么都不知道-虽然我知道vb.net、Java和其他几种语言..)。
从我的理解中,通过Debug.WriteLine输出的任何内容只在调试模式下显示(这是常识),但是通过Concole.WriteLine输出的任何内容无论是否在调试模式下都会显示。然而,我已经检查了立即窗口和输出窗口,在正常模式下没有输出任何内容。有人知道这是为什么吗?
编辑:我有点击单元格的事件处理程序-它应该输出CellClicked并在单击单元格时将网格视图设置为不可见。无论我处于哪种模式下,后者都起作用,但是CellClicked仅在调试模式下输出。我正在使用Console.WriteLine("CellClicked")。
编辑:看起来我可能已经解决了这个问题-我只是在项目设置页面中将输出设置为控制台应用程序。现在它打开了一个命令行窗口和一个窗体窗口,但是当我编译进行分发时,我可以再次更改输出。感谢您的帮助。
4个回答

7

Console.WriteLine() 在控制台应用程序中输出到控制台窗口。

你可能需要使用 Trace.WriteLine()


追踪显然是调试的一种形式 - 我想做的不是调试..使用调试模式会增加加载应用程序所需的时间(至少我看不到它能减少时间..)因此我尽可能避免使用调试模式。 我希望不使用调试模式时,可以偶尔输出语句以检查它是否在正确的时间达到特定点。 - ClarkeyBoy
1
您可以启用或禁用跟踪。您的应用程序无需处于调试模式即可执行此操作。 - starskythehutch
@ClarkeyBoy:你所描述的正是追踪(tracing)的作用。你不必将应用程序设置为调试模式(debug mode)就可以启用追踪。 - John Gietzen

3
获取Console.Write/Line()的输出并写入Visual Studio输出窗口是Visual Studio Hosting过程的一个特性。 项目+属性,调试选项卡。如果您在没有调试器的情况下运行应用程序,则此操作将无法正常工作,因为未使用托管进程。

使用Console.WriteLine进行调试并不是最好的解决方案。该代码仍将在发布版本中运行,并花费时间格式化输出字符串。而且会防止JIT优化器生成效率最高的机器码。 输出将落入位桶中,实际上没有东西可以将其写入。

并且这是不必要的,调试器提供了更好的工具来查找程序中发生的情况。花点时间熟悉其功能。如果您想查找事件处理程序是否运行,请设置断点。这种断点甚至可以跟踪输出而不实际中断。右键单击红点,单击"When hit"并使用"Print message"选项。


1

我认为你会喜欢跟踪基础设施比Console.WriteLine更好。跟踪提供了许多不同的选项,可以确定跟踪消息的位置,并能够打开或关闭它们。您还可以设置不同级别的跟踪输出,以便调整实际完成的日志记录量。.NET中内置的跟踪非常灵活,值得投资学习。

以下是一些参考资料,可帮助您入门:

希望有所帮助!
克里斯


0
你可以前往“工具”|“选项”|查找“调试”,“常规”,选择将所有输出窗口文本重定向到立即窗口,或尝试记录控制台预期输出到文件并在那里查看。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接