1) C#的Debug和Release这两个模式在程序中有什么作用?就是说这两个模式在应用程序中好像没什么作用?那本人的问题是在VS里还要设置Debug和Release这两个模式有什么用?
2)Debug.WriteLine() 和Trace.WriteLine()这两个都是调试函数 那么本人想问的是他们在程序中有什么作用?本人感觉用这个两个函数和没用一样 ,都在Output中输出 , 还不如用控制台输出呢 都一样嘛!
2)Debug.WriteLine() 和Trace.WriteLine()这两个都是调试函数 那么本人想问的是他们在程序中有什么作用?本人感觉用这个两个函数和没用一样 ,都在Output中输出 , 还不如用控制台输出呢 都一样嘛!
解决方案:60分
1. Debug版本会在IL里插入大量的nop(给断点用的),而Release不会,所以调试Release的时候单步执行有时候会跳过大段的语句。
Debug版本局部变量的生存期是一个完整的函数调用周期,所以内存开销更大,但是调试的时候你可以从各层堆栈中看到局部变量的值。
Release版本会优化代码,一些简短的语句(例如get/set)会采用inline的方式执行,但是异常的堆栈会丢失一些细节信息。
2. 不是全部的程序都有控制台。
当进行单步调试时,莫非要在vs和控制台之间反复切换?
Debug和Trace就像之前帖子里提到的,可以用宏来控制,发布的时候可以去掉提高执行效率,而Console不行。
Debug版本局部变量的生存期是一个完整的函数调用周期,所以内存开销更大,但是调试的时候你可以从各层堆栈中看到局部变量的值。
Release版本会优化代码,一些简短的语句(例如get/set)会采用inline的方式执行,但是异常的堆栈会丢失一些细节信息。
2. 不是全部的程序都有控制台。
当进行单步调试时,莫非要在vs和控制台之间反复切换?
Debug和Trace就像之前帖子里提到的,可以用宏来控制,发布的时候可以去掉提高执行效率,而Console不行。