Edições não suportadas em Editar e Continuar do Visual Basic
Editar e Continuar permite parar a execução do programa no modo de interrupção, fazer alterações no código de execução e retomar a execução do programa com as alterações recém-inseridas. As edições declarativas de código que afetam a estrutura pública de uma classe são proibidas em geral, mas muitas edições que você pode fazer em um método, corpo da propriedade ou declarações privadas dentro de uma classe são permitidas. Sempre que possível, Editar e Continuar marca o código que não pode ser editado como cinza claro.
Se você precisar fazer uma alteração que não tem suporte, deverá parar a depuração, fazer as alterações e iniciar uma nova sessão de depuração.
Neste tópico
As seções a seguir descrevem as edições sem suporte para Editar e Continuar.
Edições do corpo do método e da propriedade
Alterações sem suporte a variáveis locais estáticas
- Removendo uma variável local estática.
Alterações sem suporte a construções de iteração
Modificando a condição de um loop While, quando o ponteiro de instrução estiver na condição.
Modificando o limite inferior ou superior de uma instrução For, quando o ponteiro de instrução estiver na expressão.
Adicionando ou removendo um loop Next, quando o ponteiro de instrução é usado na expressão do enumerador.
Adicionando um loop For Each, quando o ponteiro de instrução estiver no corpo do loop.
Alterando o iterador de um loop For Each, quando o ponteiro de instrução estiver na expressão do enumerador ou no corpo do loop.
Alterando a expressão do enumerador de um loop For Each, quando o ponteiro de instrução estiver na expressão do enumerador.
Alterações sem suporte para genérico
- As alterações ao próprio método genérico ou corpo do método genérico não têm suporte. A instanciação de um tipo genérico ou chamadas para os métodos genéricos existentes pode ser adicionada, excluída ou modificada.
Outras alterações sem suporte
Alterando a instrução de invocação de um método que está na pilha de chamadas.
Adicionando um bloco Try...Catch, quando o ponteiro de instrução acabar no bloco Catch ou Finally.
Removendo um bloco Try...Catch, quando o ponteiro de instrução estiver em um bloco Catchou Finally.
Adicionando seis ou mais instruções aninhadas Try em torno do ponteiro de instrução atual.
Adicionando um bloco Using em torno do ponteiro de instrução atual.
Adicionando um bloco SynchLock em torno do ponteiro de instrução atual.
Adicionando, modificando ou descartando um #region definido pelo usuário.
Edições de atributo
Editar e Continuar não dá suporte a atributos de modificação. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Definindo, editando ou excluindo uma classe de atributo.
Adicionando um atributo.
Editando ou removendo um atributo existente.
Edições de declaração de classe
A maioria das alterações às declarações de classe não são permitidas por Editar e Continuar enquanto estiver no modo de interrupção. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Criando uma nova classe.
Renomeando, excluindo ou alterando a herança de uma classe existente.
Implementando uma nova interface ou removendo a implementação de uma interface.
Alterando alguns dos seguintes modificadores em uma classe: MustInherit, NotInheritable ou Shared.
Alterando, adicionando ou removendo o status de ComClass.
Alterando o modificador de acesso para uma classe.
Editando qualquer declaração de classe genérica.
Edições de declaração de membro de classe
As alterações a declarações de membro são proibidas na maioria dos casos de Editar e Continuar. Por exemplo, você não pode alterar a assinatura ou o nível de acesso de um membro, não pode declarar um novo método ou propriedade não privado e não pode remover completamente os membros durante o modo de interrupção. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Sombreando uma variável de membro existente declarando uma variável ou membro global do mesmo nome no bloco recipiente.
Sombreando uma variável local estática declarando uma nova instância dentro de um bloco.
Adicionando uma nova propriedade ou método não privado. Adicionar uma propriedade ou um método Private é permitido.
Adicionando um novo campo, a menos que o campo seja Private e não haja ocorrência do nome do campo em nenhuma instrução ativa.
Adicionando um novo campo Private em qualquer classe marcada com SequentialLayout ou ExplicitLayout.
Adicionando ou excluindo um construtor.
Removendo os manipuladores para um evento. Adicionar um manipulador de eventos é permitido.
Adicionando uma nova propriedade ou método de sobrecarga, a menos que a propriedade ou método seja Private e não haja ocorrência do nome em nenhuma instrução ativa.
Adicionando ou removendo a cláusula WithEvents em uma variável de membro.
Excluindo um membro.
Alterando uma declaração de propriedade ou método para parar de implementar uma interface.
Editando qualquer método que usa genéricos.
Alterando a assinatura ou o tipo de retorno de uma propriedade ou método não privado.
Substituindo ou sombreando um membro em uma classe base.
Alterando o status MustInherit ou NotOverridable de um método.
Alterando os modificadores de acesso para uma propriedade ou método.
Alterando o tipo ou status somente leitura de um campo.
Alterando um campo público.
Edições de opções do compilador
Ao usar Editar e Continuar no modo de interrupção, você não poderá alterar, adicionar ou remover as seguintes opções do compilador:
Option Strict
Option Explicit
Option Compare
Edições de compilação condicional
A maioria das alterações a políticas de compilação condicional não são permitidas enquanto estiver no modo Editar e Continuar. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Adicionando ou removendo políticas de compilação condicional.
Adicionando, removendo ou alterando a expressão de avaliação de uma instrução de compilação condicional.
Edições de constantes
As alterações a constantes enquanto estiver no modo Editar e Continuar são muito limitadas. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Definindo uma nova constante, a menos que a constante seja privada e não haja ocorrência do nome da constante em nenhuma instrução ativa.
Alterando o tipo ou o valor de uma constante.
Removendo uma constante.
Edições de declaração de delegação e evento
A maioria das alterações a representantes e eventos não são permitidas por Editar e Continuar durante o modo de interrupção. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Definindo um novo representante.
Modificando ou excluindo uma definição de representante.
Definindo um novo evento.
Excluindo um evento.
Edições de enumeração
As alterações a enumerações (Enums) não são permitidas por Editar e Continuar durante o modo de interrupção. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Definindo um novo Enum.
Modificando o tipo subjacente de um Enum.
Alterando, adicionando ou removendo um membro Enum.
Alterando o modificador de um Enum.
Edições de declarações externas
Em geral, você não pode alterar as declarações de métodos externos durante Editar e Continuar. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Adicionando ou removendo uma declaração externa.
Alterando a assinatura ou atributos de marshaling de uma declaração externa.
Edições de importações
Editar e Continuar não permite adicionar, modificar ou remover instruções Imports quando está em modo de interrupção.
Edições de definição de interface
Embora frequentemente você tenha permissão de fazer alterações nos membros que implementam interfaces, as alterações a definições de interface reais geralmente não são permitidas por Editar e Continuar. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Definindo uma nova interface.
Alterando, adicionando ou removendo membros de interface.
Excluindo uma interface existente.
Alterando o modificador de uma interface.
Alterando a hierarquia de herança da interface.
Edições de declaração de módulo
A maioria das alterações às declarações de módulo não são permitidas por Editar e Continuar enquanto estiver no modo de interrupção. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Criando um novo módulo.
Renomeando ou excluindo um módulo existente.
Alterando o modificador de acesso para um módulo.
Edições de declaração de membro de módulo
Usando Editar e Continuar, você pode executar uma variedade de alterações a membros do módulo, como propriedades, métodos e campos, quando estiver em modo de interrupção. Algumas alterações, porém, não têm suporte. Especialmente, Editar e Continuar não dá suporte a adicionar, excluir ou alterar o tipo ou assinatura de membros não privados.
Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Adicionando um novo membro, a menos que esse membro seja Private e não haja ocorrência do nome em nenhuma instrução ativa.
Removendo uma propriedade ou método.
Alterando a assinatura de uma propriedade ou método não privado.
Editando qualquer método que usa genéricos.
Alterando os modificadores de acesso para uma propriedade ou método, por exemplo, alterar Public para Private.
Excluindo ou alterando o tipo de um campo existente.
Edições de declaração de tipos aninhados
Em geral, você não pode fazer alterações a declarações de tipos aninhados no modo de interrupção quando usar Editar e Continuar. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Adicionando um novo tipo aninhado.
Movendo um tipo aninhado para outro namespace ou tipo.
Edições de declaração de estrutura
A maioria das alterações às declarações de estrutura não são permitidas por Editar e Continuar enquanto estiver no modo Interrupção. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Criando uma nova estrutura.
Renomeando ou excluindo uma estrutura existente.
Implementando uma nova interface ou removendo a implementação de uma interface.
Alterando o modificador de acesso para uma estrutura.
Edições de declaração de membro de estrutura
Usando Editar e Continuar, você pode executar uma variedade de alterações a membros da estrutura (propriedades, métodos e campos), quando estiver em modo de interrupção. Algumas alterações, porém, não têm suporte, especialmente as alterações que afetam a declaração de membros da estrutura. Especificamente, Editar e Continuar não dá suporte às seguintes alterações:
Adicionando ou removendo uma propriedade ou método, incluindo métodos de construtor (a menos que o método seja Privado e não haja ocorrência do nome do campo em nenhuma instrução ativa).
Alterando a assinatura de uma propriedade ou método.
Editando qualquer método que usa genéricos.
Alterando se uma declaração de propriedade ou método implementam uma interface.
Alterando os modificadores de acesso de uma propriedade ou método (por exemplo, alterar Public para Privado).
Adicionando ou removendo um campo.
Alterando o tipo de um campo.
Consulte também
Tarefas
Como aplicar edições no modo de interrupção com editar e continuar