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


C#, режим "Изменить и продолжить": ошибка 4027

Модификация блока перед или после активной инструкции не позволит продолжить сеанс отладки при включенном режиме "Изменить и продолжить".

Эта ошибка возникает, если:

  • была произведена попытка изменить часть оператора foreach, using, lock или fixed, когда указатель выполнения находится внутри изменяемого блока;

  • была произведена попытка изменить добавить catch в try, когда указатель выполнения находится внутри изменяемого блока;

  • была произведена попытка изменить try / catch на try / finally, когда указатель выполнения находится внутри изменяемого блока.

Дополнительные сведения см. в разделе Активные операторы.

Рассмотрим следующий код:

class Program

{

   static void Main()

   {

      using (System.IO.StreamReader file = System.IO.File.OpenText(@"example.txt"))

      {

         System.Console.WriteLine(file.ReadLine());

      }

   }

}

Если установить точку останова на вызове WriteLine и начать отладку, и затем попробовать изменить имя текстового файла в операторе using, случится эта ошибка.

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

  • Выберите команду Отменить в меню Отладка для отката изменений. Можно внести изменения позже, когда инструкция уже не активна.

    либо

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

См. также

Ссылки

foreach, in (Справочник по C#)

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

try-catch (Справочник по C#)

try-finally (Справочник по C#)

Оператор lock (Справочник по C#)

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

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

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

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