C#
调式增强(
C# Debugger Enhancements
)
1.
前言
在
VB
中可以在调试状态下,修改源代码,而
C#
则一直不行。这次使用了
C# Debugger Enhancements
,可以让
C#
调试状态下,修改源代码了。
2.
什么是调式增强
• Visual C#
的
“
编辑并继续
”
功能
<1>.
使用
C#
的
“
编辑并继续
”
,可以一边进行调试一边在中断模式下更改代码。不必停止并重新启动调试会话即可应用更改。在运行模式下,源编辑器是只读的。
<2>. “
编辑并继续
”
可以
处理方法体内的大多数类型的代码更改。
<3>.
方法体外的大多数更改以及方法体内的小部分更改在调试期间不能应用.
•
在调试会话期间
不能
对
C#
代码应用下列更改
<1>.
对当前语句或任何其他活动语句的更改.
<2>.
对全局符号的更改,包括
:
【
1
】
•
添加新类型.
【
2
】
•
在类型中添加方法.
【
3
】
•
更改类型的签名.
【
4
】
•
在类型中添加字段、事件或属性.
<3>.
编辑匿名方法或任何包含匿名方法的方法.
<4>.
添加新的匿名方法.
<5>.
添加、移除或更改属性.
<6>.
添加、移除或更改
using
指令.
<7>.
移除或更改局部变量。允许添加局部变量.
<8>.
在活动语句前后添加
foreach
、
using
或
lock.
<9>.
修改包含
yield return
或
yield break
语句的方法.
<10>.
更改具有由匿名方法初始化的字段的构造函数.
• “
编辑并继续
”
功能对异常的支持:
<1>. “
编辑并继续
”
支持对
catch
、
finally
和
try
块的更改,但活动方法(比如当前处于调用堆栈中的方法)中的块除外。
<2>.
如果活动函数是调用堆栈中最近使用的函数,则在该函数中
“
编辑并继续
”
不支持:
【
1
】
•
在活动语句的前后添加
catch
或
finally
块。
【
2
】
•
添加嵌套级别大于六的嵌套异常处理程序。
<3>.
如果活动函数不是调用堆栈中最近使用的函数,则在该函数中
“
编辑并继续
”
不支持:
【
1
】
•
在活动语句的前后添加
catch
、
finally
或
try
块。
【
2
】
•
添加嵌套级别大于六的嵌套异常处理程序。
【
3
】
•
更改包含活动语句的
try
块内的代码。
3.
小结
在我看来也许是
vs2005
编译器一个微小的改动,不管怎么说毕竟也进步了嘛。