Share via


Cambios admitidos en el código (C#)

Actualización: noviembre 2007

Este tema se aplica a:

Edición

Visual Basic

C#

C++

Web Developer

Express

Standard

Pro y Team

Leyenda de la tabla:

Se aplica

No procede

Comando o comandos ocultos de forma predeterminada.

Editar y continuar controla la mayoría de los tipos de cambios de código dentro de cuerpos de método. Ahora bien, durante la depuración, no es posible efectuar la mayoría de cambios fuera de los cuerpos de método y algunos cambios dentro de éstos. Para efectuar dichos cambios no compatibles, es necesario detener la depuración y reiniciar con una versión nueva del código.

Los cambios siguientes no se pueden llevar a cabo en el código de C# durante una sesión de depuración:

  • Cambios en la instrucción actual o en otra instrucción activa.

    Dentro de las instrucciones activas se incluye cualquier instrucción, en funciones de la pila de llamadas, que haya sido llamada para llegar a la instrucción actual.

    Un fondo amarillo marca la instrucción actual en la ventana de código fuente. Un fondo sombreado marca otras instrucciones activas; son de sólo lectura. Estos colores predeterminados se pueden cambiar en el cuadro de diálogo Opciones.

  • Cambios en símbolos globales, incluidos los siguientes:

    • Agregar nuevos tipos.

    • Agregar métodos a un tipo.

    • Cambiar la firma de un tipo.

    • Agregar campos, eventos o propiedades a un tipo.

  • Editar un método anónimo o cualquier método que contenga un método anónimo. Un fondo sombreado marca estos métodos.

  • Agregar un nuevo método anónimo.

  • Agregar, quitar o cambiar atributos.

  • Agregar, quitar o cambiar directivas using.

  • Quitar o cambiar variables locales. Se permite agregar variables locales.

  • Agregar una directiva foreach, using o lock en torno a la instrucción activa.

  • Modificar un método que contiene una instrucción yield return o yield break.

  • Cambiar un constructor con un campo inicializado por un método anónimo.

Código no seguro

Los cambios en el código no seguro tienen las mismas limitaciones que los cambios en el código seguro, con una restricción adicional:

  • Editar y continuar no admite cambios en el código no seguro que esté dentro de un método que contiene el operador stackalloc. Esto sólo se aplica a los métodos activos. Para obtener más información, vea Instrucciones activas.

Excepciones

Editar y continuar admite cambios en los bloques catch, finallyy try, con excepciones para los bloques en métodos activos, como los métodos que actualmente se encuentran en la pila de llamadas.

  • En una función activa, que es la función más reciente en la pila de llamadas, Editar y continuar no admite:

    • Agregar un bloque catch o finally en torno a la instrucción activa.

    • Agregar controladores de excepciones anidados con niveles de anidamiento mayores que seis.

  • En una función activa que no sea la función más reciente en la pila de llamadas, Editar y continuar no admite:

    • Agregar un bloque catch, finally o tryen torno a la instrucción activa.

    • Agregar controladores de excepciones anidados con niveles de anidamiento mayores que seis.

    • Cambiar el código dentro de un bloque tryque contiene la instrucción activa.

Escenarios no compatibles

Editar y continuar no está disponible en los escenarios de depuración siguientes:

  • Depuración de código LINQ. Para obtener más información, vea Editar y continuar con LINQ.

  • Depuración en modo mixto (nativo/administrado).

  • Depuración de SQL.

  • Depuración de un volcado de Dr. Watson.

  • Editar el código después de una excepción no controlada, cuando la opción "Desenredar la pila de llamadas de las excepciones no controladas" no está seleccionada.

  • Depurar una aplicación incrustada en tiempo de ejecución.

  • Depurar una aplicación que tiene Adjuntar a en lugar de ejecutar la aplicación eligiendo Iniciar en el menú Depurar.

  • Depurar código optimizado.

  • Depurar código administrado cuando el destino es una aplicación de 64 bits. Si desea utilizar Editar y continuar, debe establecer el destino en x86. (Proyecto Propiedades, ficha Compilar, Configuración de compilador avanzada).

  • Depurar una versión anterior del código cuando no ha sido posible generar una nueva versión debido a errores de compilación.

Vea también

Tareas

Cómo: Utilizar Editar y continuar (C#)

Referencia

Editar y continuar (Visual C#)

Otros recursos

Errores y advertencias de Editar y continuar (C#)