Поделиться через


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, возникнет эта ошибка.

Исправление этой ошибки

  • Отмените изменения и затем продолжайте отладку без изменений.

    —или—

    В меню Отладка выберите команду Остановить отладку, затем внесите изменения в код и начните отладку заново.

См. также

Ссылки

yield (справочник по C#)

Поддерживаемые изменения кода (C#)

Режим "Изменить и продолжить" (Visual C#)

Другие ресурсы

Ошибки и предупреждения режима "Изменить и продолжить" (C#)