System.Diagnostics.Debug.Write输出出现在哪里?

以下C#程序(使用内置csc hello.cs)仅Hello via Console!在控制台和Hello via OutputDebugStringDebugView窗口中打印。但是,我看不到任何一个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?


我没有使用Visual Studio进行任何开发,这只是纯命令行内容。


慕码人2483693
浏览 1938回答 3
3回答

繁花如伊

正如其他人指出的那样,必须注册侦听器才能读取这些流。另请注意,Debug.Write仅当DEBUG设置了构建标记时,Trace.Write该功能才起作用;而仅当TRACE设置了构建标记时,该功能才起作用。在Visual Studio的项目属性中或通过向csc.exe提供以下参数,可以轻松地设置DEBUG和/或TRACE标志。/define:DEBUG;TRACE
打开App,查看更多内容
随时随地看视频慕课网APP