哪里会出现System.Diagnotics.Debug.WITS输出?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (33)

下面的C#程序(用csc hello.cs)打印Hello via Console!在控制台上Hello via OutputDebugString在DebugView窗口中。但是,我看不到任何一个System.Diagnostics.*被调用。那是为什么?

using System;
using System.Runtime.InteropServices;
class Hello {
    [DllImport("kernel32.dll", CharSet=CharSet.Auto)]
    public static extern void OutputDebugString(string message);

    static void Main() {
        Console.Write( "Hello via Console!" );
        System.Diagnostics.Debug.Write( "Hello via Debug!" );
        System.Diagnostics.Trace.Write( "Hello via Trace!" );
        OutputDebugString( "Hello via OutputDebugString" );
    }
}

是否需要一些特殊的命令行交换机?csc?

我没有在我的任何开发中使用VisualStudio,这是纯粹的命令行内容。

提问于
用户回答回答于

正如其他人指出的那样,听众必须登记才能阅读这些流。还请注意Debug.Write将只在DEBUG设置了生成标志,而Trace.Write将只在TRACE设置了生成标志。

设置DEBUG和/或TRACE在VisualStudio中的项目属性中,或通过向csc.exe提供以下参数,可以轻松完成标志

/define:DEBUG;TRACE

用户回答回答于

同时调试System.Diagnostics.Debug.WriteLine将显示在输出窗口(Ctrl+Alt+O)中,也可以添加TraceListenerDebug.Listeners集合指定Debug.WriteLine调用其他位置的输出。

注:Debug.WriteLine如果在菜单下选中VisualStudio选项“将所有输出窗口文本重定向到立即窗口”,则可能不会在输出窗口中显示调用工具备选方案调试一般。显示“工具备选方案调试“,选中旁边的复选框”工具备选方案显示所有设置

扫码关注云+社区