(C#) Editar y continuar: error 4054
Actualización: noviembre 2007
Mensaje de error
Si modifica 'método | propiedad | indizador | operador' que contiene una instrucción 'yield return' o 'yield break' evitará que la sesión de depuración continúe mientras esté habilitada la opción Editar y continuar.
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
Este error aparece si intenta modificar un método, propiedad, indizador u operador que contienen una instrucción yield return o yield break. Para obtener más información, vea yield (Referencia de C#). Editar y continuar no admite este cambio durante la depuración.
Observe el código siguiente:
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))
{
}
}
}
Si establece un punto de interrupción en yield return items[index], inicia la depuración e intenta agregar una declaración de variable local int a = 10 en el método Range, se produce este error.
Para corregir este error
Deshaga los cambios y, después, continúe la depuración sin los cambios.
— o bien —
En el menú Depurar, seleccione Detener depuración y, a continuación, realice los cambios y comience una nueva sesión de depuración.
Vea también
Referencia
Cambios admitidos en el código (C#)
Editar y continuar (Visual C#)