Modifica e continuazione C#: errore 4054

Se si modifica un '[metodo | proprietà | indicizzatore | operatore]' che contiene l'istruzione 'yield return' o 'yield break', la sessione di debug non potrà continuare quando è attivo Modifica e continuazione.

Questo errore si verifica quando si tenta di modificare un metodo, una proprietà, un indicizzatore o un operatore contenente un'istruzione yield return o yield break. Per ulteriori informazioni, vedere yield (Riferimenti per C#). In Modifica e continuazione non è supportata questa modifica durante il debug.

Si consideri il codice riportato di seguito.

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

      {

         

      }

   }

}

Se si imposta un punto di interruzione in corrispondenza di yield return items[index] e quindi si avvia il debug e si tenta di aggiungere una dichiarazione di variabile locale int a = 10 nel metodo Range, si verificherà questo errore.

Per correggere l'errore

  • Annullare le modifiche e continuare il debug.

    —oppure—

    Scegliere Termina debug dal menu Debug, apportare le modifiche, quindi avviare una nuova sessione di debug.

Vedere anche

Riferimenti

yield (Riferimenti per C#)

Modifiche al codice supportate (C#)

Modifica e continuazione (Visual C#)

Altre risorse

Errori e avvisi di Modifica e continuazione (C#)