Condividi tramite


C# - Modifica e continuazione: errore 4054

Aggiornamento: novembre 2007

Messaggio di errore

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.
Modifying a 'method | property | indexer | operator' which contains the 'yield return' or 'yield break' statement will prevent the debug session from continuing while Edit and Continue is enabled

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 seguente:

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