Compartir a través de


Cambios admitidos en el código (C#)

Este tema se aplica a:

Edición

Visual Basic

C#

F#

C++

Web Developer

Express

El tema no es aplicable El tema es aplicable El tema no es aplicable El tema no es aplicable El tema es aplicable

Pro, Premium y Ultimate

El tema no es aplicable El tema es aplicable El tema no es aplicable El tema no es aplicable El tema es aplicable

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. Cuando está depurando, cualquier función que se encuentre actualmente en la pila de llamadas es una función activa.

Excepciones

Editar y continuar admite cambios en los bloques catch, finally y try, con algunas excepciones para los bloques de los métodos activos, como los métodos que se encuentran actualmente 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 try en 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 try que contiene la instrucción activa.

Escenarios no compatibles

La opción Editar y continuar no se encuentra disponible en los siguientes escenarios de depuración:

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

  • Depuración en modo mixto (nativa o administrada).

  • 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.

  • Depuración de 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.

  • Depuración de código optimizado.

  • Depuración de código administrado cuando el destino es una aplicación de 64 bits. Si desea utilizar la opción Editar y continuar, deberá establecer el destino en x86. (Propiedades del proyecto, pestaña 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#)