C# 编辑并继续:错误 4054
当启用“编辑并继续”后,修改包含“yield return”或“yield break”语句的“方法 | 属性 | 索引器 | 运算符”将会阻止调试会话继续进行
当尝试修改包含 yield return 或 yield break 语句的方法、属性、索引器或运算符时,将发生此错误。 有关更多信息,请参见 yield(C# 参考)。 “编辑并继续”在调试期间不支持此更改。
考虑下列代码:
class Program
{
private int[] items = { 1, 2, 3 };
System.Collections.Generic.IEnumerable<int> Range(int start, int end)
{
for (int index = start; index < end; index++)
{
yield return items[index];
}
}
static void Main()
{
Program p = new Program();
foreach (int item in p.Range(0, 2))
{
}
}
}
如果您在 yield return items[index] 上设置了一个断点,然后开始调试并尝试在 Range 方法中添加一个局部变量声明 int a = 10,则将发生此错误。
更正此错误
撤消更改,然后在不进行更改的情况下继续调试。
- 或 -
在**“调试”菜单上单击“停止调试”**,进行更改,然后启动新的调试会话。