程序调试的时候我一直用的是console.writeline,后来想想,好像用debug.write也可以,他们的区别不知道怎么样,好像是debug在程序最后发布的时候是不运行的吧?如果用console.writeline()在最后的代码中也是运行的吧,不知道我这样理解对不对(之前看书都忘了上论坛看了以前一个贴也是问这个的,不过搂主直接就被楼下的大虾唬住了,说console只能在控制台用winform就要用debug是在扯吧我一直都用console的)
代码和输出入下,另外为什么debug的输出在console后边呢?编译和执行的过程决定?
         
         
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Debug.Write("debug after construct!");
            Console.WriteLine("console after construct!");
        }        private void pictureBox1_Click(object sender, EventArgs e)
        {
            Console.WriteLine("click");
        }
    }
输出入下:
console after construct!
debug after construct!“Contacts.vshost.exe”(托管): 已加载“G:\WINDOWS\assembly\GAC_MSIL\mscorlib.resources\2.0.0.0_zh-CHS_b77a5c561934e089\mscorlib.resources.dll”,未加载符号。
click

解决方案 »

  1.   

    使用System.Diagnostics.Debug类提供的方法只会在调试版本运行,而在Release版的不会运行。
    而使用System.Console.WriteLine等方法是表示向控制台应用程序的标准输入流、输出流写入数据。不论是否调试版都运行。
      

  2.   

    呵呵,我也是才知道Console.WriteLine()在WinForm里也能运行,真是太菜了~~
      

  3.   

    和debug对应的还有一个功能强大的trace,参考
    http://blog.csdn.net/jinjazz/archive/2008/06/11/2536706.aspx
      

  4.   

    在Windows中控制台称为命令提示窗口...即俗称的DOS窗口...而Win32程序是不和控制台交互的...所以你所谓的Console.WriteLine可以在WinForm程序中使用实际上只是VS IDE的功能而已,在调试运行时可以将向控制台的输出输出到“输出”窗口...而在运行时即使是debug版本也会忽略Console,不会执行的...