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编译器一个微小的改动,不管怎么说毕竟也进步了嘛。