C#, режим "Изменить и продолжить": ошибка 4054
Изменение [метода (method) | свойства (property) | индексатора (indexer) | оператора (operator)], cодержащих инструкцию вида "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], а затем запустить отладку и попробовать добавить объявление локальной переменной int a = 10 в метод Range, возникнет эта ошибка.
Исправление этой ошибки
Отмените изменения и затем продолжайте отладку без изменений.
—или—
В меню Отладка выберите команду Остановить отладку, затем внесите изменения в код и начните отладку заново.
См. также
Ссылки
Поддерживаемые изменения кода (C#)
Режим "Изменить и продолжить" (Visual C#)