Partilhar via


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

Edições de atributo

Edições de declaração de classe

Edições de declaração de membro de classe

Edições de opções do compilador

Edições de compilação condicional

Edições de constantes

Edições de declaração de delegação e evento

Edições de enumeração

Edições de declarações externas

Edições de importações

Edições de definição de interface

Edições de declaração de módulo

Edições de declaração de membro de módulo

Edições de declaração de tipos aninhados

Edições de declaração de estrutura

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

Outros recursos

Editar e Continuar (Visual Basic)