Partilhar via


Alterações de código suportadas (C#)

This topic applies to:

Edition

Visual Basic

C#

F#

C++

Web Developer

Express

O tópico não é aplicável O tópico é aplicável O tópico não é aplicável O tópico não é aplicável O tópico é aplicável

Pro, Premium e Ultimate

O tópico não é aplicável O tópico é aplicável O tópico não é aplicável O tópico não é aplicável O tópico é aplicável

Edit and Continue lida com a maioria dos tipos de alterações de código dentro de corpos de método. A maioria das alterações fora corpos de método e algumas alterações dentro de corpos de método não podem ser aplicadas durante a depuração, no entanto. Para aplicar essas alterações sem suporte, você deve parar a depuração e reiniciar com uma versão nova do código.

As seguintes alterações não podem ser aplicadas ao código de C# durante uma sessão de depuração:

  • Altera a instrução atual ou qualquer instrução ativa.

    Active statements incluem quaisquer declarações em funções na pilha de chamadas, que foram chamadas para ir para a instrução atual.

    A instrução atual é marcada por um plano de fundo amarelo na janela de origem. Outros active statements são marcados por um plano de fundo sombreado e são somente leitura. Essas cores padrão podem ser alteradas na Opções caixa de diálogo.

  • Símbolos globais, incluindo as seguintes alterações:

    • Adicionando novos tipos.

    • Adicionando métodos para um tipo.

    • Alterando a assinatura de um tipo.

    • Adicionando campos, eventos ou propriedades para um tipo.

  • A edição de um método anônimo ou qualquer método que contém um método anônimo. Esses métodos são marcados por um plano de fundo sombreado.

  • Adicionando um novo método anônimo.

  • Adicionando, removendo ou alterando atributos.

  • Adicionar, remover ou alterar using diretivas.

  • A remoção ou alteração de variáveis locais. É permitido adicionar variáveis locais.

  • Adicionando um foreach, using, ou lock em torno da instrução ativa.

  • Modificando um método que contém um yield return ou yield break instrução.

  • Alterando um construtor com um campo que é inicializado por um método anônimo.

Código inseguro

Alterações no código inseguro têm as mesmas limitações que alterações no código seguro, com uma restrição adicional:

  • Edição e continuação não oferece suporte a alterações de código não seguro, sai dentro de um método que contém o operador stackalloc. Isso se aplica somente aos métodos ativa. Quando você está depurando, qualquer função no momento na pilha de chamadas é um ativo.

Exceptions

Edit and Continue oferece suporte a alterações para catch, finally,e try blocos, com algumas exceções para blocos de active métodos, como métodos que estão atualmente na pilha de chamada.

  • Em uma função ativa que é a função mais recente na pilha de chamadas, a opção Edit and Continue não dá suporte:

    • Adicionando um catch ou finallyem torno da instrução ativa.

    • Adicionando manipuladores de exceção aninhados com mais de seis níveis de aninhamento.

  • Em uma função ativa que não é a função mais recente na pilha de chamadas, a opção Edit and Continue não dá suporte:

    • Adicionando um catch, finally ou tryem torno da instrução ativa.

    • Adicionando manipuladores de exceção aninhados com mais de seis níveis de aninhamento.

    • Alterar o código dentro de um trybloco que contém a instrução ativa.

Unsupported Scenarios

Edit and Continue is not available in the following debugging scenarios:

  • Depurar o código do LINQ. For more information, see Editar e continuar com o LINQ.

  • Mixed-mode (native/managed) debugging.

  • SQL debugging.

  • Depuração um Dr. Despejo do Watson.

  • Editing code after an unhandled exception, when the "Unwind the call stack on unhandled exceptions" option is not selected.

  • Debugging an embedded runtime application.

  • Depurando um aplicativo que tenha Attach to em vez de executar o aplicativo, escolhendo Iniciar da Debug menu.

  • Debugging optimized code.

  • Debugging managed code when the target is a 64-bit application. If you want to use Edit and Continue, you must set the target to x86. (Projeto propriedades, compilar guia, Advanced Compiler configuração.)

  • Após falha de uma nova versão ao construir devido a erros de compilação de depuração de uma versão antiga do seu código.

Consulte também

Tarefas

Como: Editar e continuar (C#)

Referência

Edição e continuação (Visual C#)

Outros recursos

Editar e continuar a erros e avisos (C#)