Compartir a través de


Ediciones no compatibles en Editar y continuar de Visual Basic

La característica Editar y continuar permite detener la ejecución del programa en modo de interrupción, realizar cambios en el código en ejecución y retomar la ejecución del programa con estos nuevos cambios incorporados. Las modificaciones del código declarativo que afectan a la estructura pública de una clase suelen estar prohibidas, pero se permiten muchas modificaciones que se podrían hacer en un método, cuerpo de propiedad o declaraciones privadas en una clase. Cuando es posible, Editar y continuar marca el código que no se puede modificar de color gris claro.

Si necesita realizar un cambio no compatible, debe detener la depuración, hacer el cambio e iniciar una nueva sesión de depuración.

En este tema

Las siguientes secciones describen las ediciones no compatibles con Editar y continuar.

Ediciones del cuerpo de métodos y propiedades

Ediciones de atributos

Ediciones de declaraciones de clases

Ediciones de declaraciones de miembros de clase

Ediciones de opciones del compilador

Ediciones de compilación condicional

Ediciones de constantes

Ediciones de declaraciones de delegados y eventos

Ediciones de enumeraciones

Ediciones de declaraciones externas

Ediciones de importaciones

Ediciones de definiciones de interfaz

Ediciones de declaraciones de módulo

Ediciones de declaraciones de miembros de módulo

Ediciones de declaraciones de tipos anidados

Ediciones de declaraciones de estructura

Ediciones del cuerpo de métodos y propiedades

Cambios no admitidos en variables locales estáticas

  • Quitar una variable local estática.

Cambios no compatibles con construcciones de iteración

  • Modificar la condición de un bucle While cuando el puntero de instrucciones está en la condición.

  • Modificar el límite superior o inferior de una instrucción For cuando el puntero de instrucción está en la expresión.

  • Agregar o quitar un bucle Next cuando el puntero de instrucción se utiliza en la expresión del enumerador.

  • Agregar un bucle For Each cuando el puntero de instrucción está en el cuerpo del bucle.

  • Cambiar el iterador de un bucle For Each cuando el puntero de instrucción está en la expresión del enumerador o en el cuerpo del bucle.

  • Cambiar la expresión del enumerador de un bucle For Each cuando el puntero de instrucción está en la expresión del enumerador.

Cambios no admitidos en los genéricos

  • No se admiten cambios en el propio método genérico o en el cuerpo del método genérico. Se puede agregar, eliminar o cambiar la creación de instancias de un tipo genérico o de llamadas a los métodos genéricos existentes.

Otros cambios no admitidos

  • Cambiar la instrucción de invocación de un método que está en la pila de llamadas.

  • Agregar un bloque Try...Catch cuando el puntero de instrucción termina en el bloque Catch o en el bloque Finally.

  • Quitar un bloque Try...Catch cuando el puntero de instrucción está en un bloque Catcho en el bloque Finally.

  • Agregar seis o más instrucciones Try anidadas alrededor del puntero de instrucción actual.

  • Agregar un bloque Using alrededor del puntero de instrucción actual.

  • Agregar un bloque SynchLock alrededor del puntero de instrucción actual.

  • Agregar, quitar o modificar una instrucción #region definida por el usuario.

Ediciones de atributos

Editar y continuar no admite la modificación de atributos. En concreto, Editar y continuar no admite los siguientes cambios:

  • Definir, editar o eliminar una clase de atributos.

  • Agregar un atributo.

  • Editar o quitar un atributo existente.

Ediciones de declaraciones de clases

Editar y continuar no permite la mayoría de los cambios en las declaraciones de clase en modo de interrupción. En concreto, Editar y continuar no admite los siguientes cambios:

  • Crear una nueva clase.

  • Cambiar el nombre, eliminar o cambiar la herencia de una clase existente.

  • Implementar una nueva interfaz o quitar la implementación de una interfaz.

  • Cambiar cualquiera de los siguientes modificadores en una clase: MustInherit, NotInheritable o Shared.

  • Agregar, cambiar o quitar el estado ComClass.

  • Cambiar el modificador de acceso de una clase.

  • Editar cualquier declaración de clase genérica.

Ediciones de declaraciones de miembros de clase

En la mayoría de los casos, las declaraciones de miembros están prohibidas en Editar y continuar. Por ejemplo, no puede cambiar la firma o el nivel de acceso de un miembro, ni declarar un nuevo método o propiedad no privados ni quitar todos los miembros en el modo de interrupción. En concreto, Editar y continuar no admite los siguientes cambios:

  • Sombrear una variable miembro existente mediante la declaración de una variable miembro o variable global con el mismo nombre en el bloque contenedor.

  • Ocultar una variable local estática mediante la declaración de una nueva instancia dentro de un bloque.

  • Agregar un nuevo método o propiedad no privados. Se permite agregar una propiedad o método Private.

  • Agregar un nuevo campo, a menos que el campo sea Private y no aparezca su nombre en una instrucción activa.

  • Agregar un nuevo campo Private en cualquier clase marcada con SequentialLayout o ExplicitLayout.

  • Agregar o eliminar un constructor.

  • Quitar los controladores de un evento. Se permite agregar un controlador de eventos.

  • Agregar una nueva propiedad o método de sobrecarga, a menos que la propiedad o método sea Private y no aparezca su nombre en una instrucción activa.

  • Agregar o quitar la cláusula WithEvents en una variable miembro.

  • Eliminar un miembro.

  • Cambiar una declaración de método o propiedad para detener la implementación de una interfaz.

  • Modificar cualquier método que utilice tipos genéricos.

  • Cambiar la firma o tipo de valor devuelto de un método o propiedad no privados.

  • Reemplazar o sombrear un miembro de una clase base.

  • Cambiar el estado MustInherit o NotOverridable de un método.

  • Cambiar los modificadores de acceso de una propiedad o método.

  • Cambiar el tipo o el estado de solo lectura de un campo.

  • Cambiar un campo público.

Ediciones de opciones del compilador

Mientras utilice Editar y continuar en modo de interrupción, no podrá cambiar, agregar o quitar las siguientes opciones del compilador:

  • Option Strict

  • Option Explicit

  • Option Compare

Ediciones de compilación condicional

No se permite realizar la mayoría de cambios en las directivas de compilación condicional mientras se está en el modo Editar y continuar. En concreto, Editar y continuar no admite los siguientes cambios:

  • Agregar o quitar directivas de compilación condicional.

  • Agregar, quitar o cambiar la expresión de evaluación de una instrucción de compilación condicional.

Ediciones de constantes

Los cambios de las constantes en el modo Editar y continuar están muy limitados. En concreto, Editar y continuar no admite los siguientes cambios:

  • Definir una nueva constante, a menos que la constante sea privada y su nombre no aparezca en ninguna instrucción activa.

  • Cambiar el tipo o valor de una constante.

  • Quitar una constante.

Ediciones de declaraciones de delegados y eventos

Editar y continuar no permite la mayoría de los cambios en delegados y eventos en el modo de interrupción. En concreto, Editar y continuar no admite los siguientes cambios:

  • Definir un nuevo delegado.

  • Cambiar o eliminar una definición de delegado.

  • Definir un nuevo evento.

  • Eliminar un evento.

Ediciones de enumeraciones

Editar y continuar no permite cambios en enumeraciones (Enums) en el modo de interrupción. En concreto, Editar y continuar no admite los siguientes cambios:

  • Definir un nuevo valor Enum.

  • Modificar el tipo subyacente de un valor Enum.

  • Agregar, cambiar o quitar un miembro de Enum.

  • Cambiar el modificador de acceso de un valor Enum.

Ediciones de declaraciones externas

En general, no puede cambiar las declaraciones de métodos externos mientras se encuentra en modo Editar y continuar. En concreto, Editar y continuar no admite los siguientes cambios:

  • Agregar o quitar una declaración externa.

  • Cambiar la firma o calcular las referencias de los atributos de una declaración externa.

Ediciones de importaciones

Editar y continuar no permite agregar, cambiar o quitar instrucciones Imports mientras se encuentra en el modo de interrupción.

Ediciones de definiciones de interfaz

Aunque generalmente se pueden realizar cambios en miembros que implementan interfaces; Editar y continuar no suele permitir cambios en definiciones de interfaz reales. En concreto, Editar y continuar no admite los siguientes cambios:

  • Definir una nueva interfaz.

  • Agregar, cambiar o quitar miembros de interfaz.

  • Eliminar una interfaz existente.

  • Cambiar el modificador de acceso de una interfaz.

  • Cambiar la jerarquía de herencia de las interfaces.

Ediciones de declaraciones de módulo

Editar y continuar no permite la mayoría de los cambios en las declaraciones de módulo mientras se encuentra en el modo de interrupción. En concreto, Editar y continuar no admite los siguientes cambios:

  • Crear un nuevo módulo.

  • Cambiar el nombre o eliminar un módulo existente.

  • Cambiar el modificador de acceso de un módulo.

Ediciones de declaraciones de miembros de módulo

Con Editar y continuar, puede realizar una serie de cambios en los miembros de módulo, como propiedades, métodos y campos, mientras se encuentra en el modo de interrupción. Sin embargo, no se admiten algunos cambios. En concreto, Editar y continuar no admite la adición, eliminación o cambio del tipo o firma de miembros no privados.

En concreto, Editar y continuar no admite los siguientes cambios:

  • Agregar un nuevo miembro, a menos que dicho miembro sea Private y no aparezca su nombre en una instrucción activa.

  • Quitar una propiedad o método.

  • Cambiar la firma de una propiedad o método no privados.

  • Modificar cualquier método que utilice tipos genéricos.

  • Cambiar los modificadores de acceso de una propiedad o método, por ejemplo, cambiar Public a Private.

  • Eliminar o cambiar el tipo de un campo existente.

Ediciones de declaraciones de tipos anidados

En general, no se pueden realizar cambios en las declaraciones de tipos anidados en el modo de interrupción mientras se utiliza Editar y continuar. En concreto, Editar y continuar no admite los siguientes cambios:

  • Agregar un nuevo tipo anidado.

  • Mover un tipo anidado a otro espacio de nombres o tipo.

Ediciones de declaraciones de estructura

Editar y continuar no permite la mayor parte de los cambios en las declaraciones de estructura mientras se encuentra en modo de interrupción. En concreto, Editar y continuar no admite los siguientes cambios:

  • Crear una nueva estructura.

  • Cambiar el nombre o eliminar una estructura existente.

  • Implementar una nueva interfaz o quitar la implementación de una interfaz.

  • Cambiar el modificador de acceso de una estructura.

Ediciones de declaraciones de miembros de estructura

Con Editar y continuar, es posible realizar una serie de cambios en miembros de estructura (propiedades, métodos y campos) mientras se está en el modo de interrupción. Sin embargo, no se admiten algunos los cambios, en concreto los que afectan a la declaración de miembros de estructura. En concreto, Editar y continuar no admite los siguientes cambios:

  • Agregar o quitar una propiedad o método, incluidos los métodos de constructor (a menos que el método sea Private y que el nombre de campo no aparezca en una instrucción activa).

  • Cambiar la firma de una propiedad o método.

  • Modificar cualquier método que utilice tipos genéricos.

  • Cambiar si una declaración de método o propiedad implementa una interfaz.

  • Cambiar los modificadores de acceso de una propiedad o método (por ejemplo, cambiar Public a Private).

  • Agregar o quitar un campo.

  • Cambiar el tipo de un campo.

Vea también

Tareas

Cómo: Aplicar tareas de edición en modo de interrupción con Editar y continuar

Otros recursos

Editar y continuar (Visual Basic)