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#)