to liujia_0421(SnowLover) 也就是说,debug不妨碍程序的运行,但可以输出中间结果了? to xyq1986() 当你开发winform,webform application时,就不能用Console了,这时用Debug就可以在output窗口中看到调试信息,……也可以Trace啦 ----------------------------------------------------------------------------------- 那我用messagebox不行吗?
TO: 也就是说,debug不妨碍程序的运行,但可以输出中间结果了?是的..TO: 那我用messagebox不行吗?可以用,但是如果仅仅是由于调试的话,你弹那么MessageBox不觉得麻烦吗? 再说MessageBox还是有模式的,你不关闭,接下来的程序段还运行不了.. 相比起来,Debug则显得方便一些..
console.write用于控制台程序,使用程序在运行时可以向控制台(就是dos界面的那个)输出信息详细可以查一下msdn
-----------------------------------------------------------
那有什意义?
二者同样是输入,但Debug是输出到output窗口,而Console是输出到控件台窗口,
而且Debug必须要在Debug情况下才有效,你按Ctrl+F5后会看到Console的输出,
按F5后也能看到Console的输出,还可以看到output中Debug的输出
-------------------------------------------
怎么方便了?
2.debug提供了许多调试指令,如断言
System.Diagnostics.Debug.Assert(false,"信息");
将出现一个对话框
3.debug可以自定义监听器
(下例将信息存入磁盘文件)
System.Diagnostics.TextWriterTraceListener t=new System.Diagnostics.TextWriterTraceListener(@"c:\a.txt");
System.Diagnostics.Debug.Listeners.Add(t);
System.Diagnostics.Debug.WriteLine("信息");
t.Flush();
string str = "aaa";
string s="";
Debug.WriteLine("*********before:" + s+"**********");
s = str;
Debug.WriteLine ("*********after:" + s+"**********");比如说你想监视变量s值的变化,可以不用设置断点,直接写两个Debug输出,等程序运行结束后,就可以直接在output窗口中看到相应信息..以下截取部分.........
“D:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll”,已跳过符号加载。已对模块进行了优化并启用了调试器选项“仅我的代码”。
*********before:**********
*********after:aaa**********
线程 0xe14 已退出,返回值为 0 (0x0)。
线程 '<无名称>' (0xe68) 已退出,返回值为 0 (0x0)。
程序“[1900] TestRegex.vshost.exe: 托管”已退出,返回值为 0 (0x0)。
看到上面的before和after了吗?
也就是说,debug不妨碍程序的运行,但可以输出中间结果了?
to xyq1986()
当你开发winform,webform application时,就不能用Console了,这时用Debug就可以在output窗口中看到调试信息,……也可以Trace啦
-----------------------------------------------------------------------------------
那我用messagebox不行吗?
也就是说,debug不妨碍程序的运行,但可以输出中间结果了?是的..TO:
那我用messagebox不行吗?可以用,但是如果仅仅是由于调试的话,你弹那么MessageBox不觉得麻烦吗?
再说MessageBox还是有模式的,你不关闭,接下来的程序段还运行不了..
相比起来,Debug则显得方便一些..
态度真好~~~