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
Modifiche al codice supportate (C#)
Modifica e continuazione (Visual C#)