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