C# 编辑并继续:错误 4029

如果启用了“编辑并继续”,修改泛型类型的上下文中的方法会阻止调试会话继续进行

此错误指示尝试修改泛型类型的方法(泛型或非泛型)、属性、索引器、事件、运算符、构造函数或析构函数。 “编辑并继续”在调试期间不支持此类更改。

考虑下列代码:

static class Utils<T> where T: System.IComparable

{

   public static T Max(T item1, T item2)

   {

      if (item1.CompareTo(item2) > 0)

         return item1;

      return item2;

   }

}

class Program

{

   static void Main(string[] args)

   {

      int max = Utils<int>.Max(10, 20);

   }

}

如果在 if (item1.CompareTo(item2) > 0) 行处添加一个断点,然后开始调试并尝试将 > 0 更改为 >= 0,则会发生此错误。

更正此错误

  • 撤消更改,然后在不进行更改的情况下继续调试。

    - 或 -

    在**“调试”菜单上单击“停止调试”**,进行更改,然后启动新的调试会话。

请参见

参考

泛型(C# 编程指南)

受支持的代码更改 (C#)

编辑并继续 (Visual C#)

其他资源

“编辑并继续”错误和警告 (C#)