我试图写一个消息到输出窗口调试的目的。我搜索了一个类似Java的system.out.println("")的函数。我尝试了调试。写,控制台。Write和Trace.Write。它不会给出错误,但也不会打印任何东西。

“定义调试常量”和“定义跟踪常量”选项被选中。

菜单工具→选项→调试→“将所有输出窗口文本重定向到立即窗口”选项未选中。

配置:活动(调试)

注意:如果相关的话,我用向导创建了一个“Windows窗体应用程序”项目。我不知道去哪里找。


当前回答

这将写入调试输出窗口:

using System.Diagnostics;

Debug.WriteLine("Send to debug output.");

其他回答

Debug.Print("text here")

or

Console.WriteLine("text here")

出于调试目的,System.Diagnostics.Debug.WriteLine()命令不会被编译到代码的发布版本中,除非您有调试侦听器。当在调试模式下运行时,它会写入所有跟踪侦听器,其中包括VS输出窗口。

对于控制台应用程序。Console.WriteLine()可以工作,但输出仍然会在二进制文件的发布版本中生成。

调试测试时,调试输出也应该出现在正常输出窗口中;然而,控制台。Writeline输出没有(但可以在测试输出窗口中找到)。

以下是我在Visual Studio 2015中的工作:

OutputDebugStringW(L"Write this to Output window in VS14.");

在这里阅读OutputDebugStringW的文档。

注意,此方法仅在调试代码时有效(调试模式)。

这不是对原来问题的回答。但是,由于我在搜索交互式转储对象数据的方法时发现了这个问题,我认为其他人可能会从提到这个非常有用的替代方法中受益。

我最终使用命令窗口并进入调试。打印命令,如下所示。这打印了一个内存对象的格式,可以复制为文本,这是我真正需要的。

> Debug.Print <item>

  id: 1
  idt: null
  igad: 99
  igbd: 99
  gl_desc: "New #20"
  te_num: "1-001-001-020"
Debug.WriteLine

就是你要找的。

如果没有,试着这样做:

菜单工具→选项→调试→取消勾选即时输出。