Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O C# IntelliSense é um auxílio de preenchimento de código específico do idioma. Ele está disponível para você quando você escreve código C# no editor de código e o depura na janela de comando do modo imediato .
Listas de conclusão
As listas de conclusão do IntelliSense em C# contêm tokens de Membros da Lista, Word Completo e muito mais. Ele fornece acesso rápido a:
Membros de um tipo ou namespace
Variáveis, comandos e nomes de funções
Trechos de código
Palavras-chave de linguagem
Métodos de extensão
As listas de conclusão em C# filtram tokens irrelevantes e pré-seleção de tokens com base no contexto. Para obter mais informações, consulte Listas de conclusão filtradas.
Snippets de código em listas de conclusão
No C#, a lista de conclusão inclui snippets de código para ajudá-lo a inserir facilmente corpos predefinidos de código em seu programa. Os snippets de código aparecem na lista de conclusão como o texto de atalho do snippet. Para obter mais informações sobre snippets de código que estão disponíveis em C# por padrão, consulte snippets de código em C#.
Palavras-chave de idioma em listas de conclusão
A lista de conclusão inclui palavras-chave de linguagem C# para ajudá-lo a inseri-las em seu programa. Para obter mais informações sobre palavras-chave de linguagem C#, consulte palavras-chave em C#.
Métodos de extensão em listas de conclusão
Em C#, a lista de conclusão inclui métodos de extensão que estão no escopo.
Os métodos de extensão usam um ícone diferente dos métodos de instância. Quando um método de instância e um método de extensão com o mesmo nome estão no escopo, a lista de conclusão exibe o ícone do método de extensão.
Observação
Para String objetos, a lista de conclusão não exibe todos os métodos de extensão.
Listas de conclusão filtradas
O IntelliSense remove membros desnecessários da lista de conclusão usando filtros. O C# filtra as listas de conclusão que aparecem para estes itens:
Interfaces e classes base: o IntelliSense remove automaticamente itens desnecessários das listas de conclusão de classe base e interface, essa remoção inclui bases de declaração de classe e listas de interface e listas de restrições. Por exemplo, as enumerações não aparecem na lista de conclusão para classes base, pois os enumes não podem ser usados para classes base. A lista de conclusão de classes base contém apenas interfaces e namespaces. Se você selecionar um item na lista e digitar uma chave de vírgula, o IntelliSense removerá as classes base da lista de conclusão. Ele faz isso porque o C# não dá suporte a várias heranças. O mesmo comportamento também ocorre para cláusulas de restrição.
Atributos: quando você aplica um atributo a um tipo, a lista de conclusão é filtrada para que a lista contenha apenas os tipos que descem dos namespaces que contêm esses tipos. Por exemplo, Attribute.
Cláusulas catch: somente palavras-chave try-catch válidas aparecem na lista de conclusão.
Inicializadores de objeto: somente os membros que podem ser inicializados aparecem na lista de conclusão.
nova palavra-chave: quando você digita
newe pressiona a tecla Space , uma lista de conclusão é exibida. O IntelliSense seleciona automaticamente um item na lista, com base no contexto em seu código. Por exemplo, o IntelliSense seleciona automaticamente itens na lista de conclusão para declarações e para instruções de retorno em métodos.enumerar palavra-chave: quando você pressiona a tecla Space após um sinal de igual para uma atribuição de enumeração, uma lista de conclusão é exibida. O IntelliSense seleciona automaticamente um item na lista, com base no contexto em seu código. Por exemplo, o IntelliSense seleciona automaticamente itens na lista de conclusão depois que você digita a
returnpalavra-chave e quando faz uma declaração.operadores as and is: o IntelliSense exibe automaticamente uma lista de conclusão filtrada quando você pressiona a tecla Space depois de digitar a palavra-chave ou
asaispalavra-chave.Eventos: quando você digita a palavra-chave
event, a lista de conclusão contém apenas tipos de delegado.Ajuda do parâmetro: o IntelliSense classifica automaticamente a primeira sobrecarga de método que corresponde aos parâmetros à medida que você os insere. Se várias sobrecargas de método estiverem disponíveis, você poderá usar as setas para cima e para baixo para navegar até a próxima sobrecarga possível na lista.
Membros usados mais recentemente
O IntelliSense lembra os membros que você selecionou recentemente na caixa pop-up Membros da Lista para conclusão automática do nome do objeto. Na próxima vez que você usar a Lista de Membros, os membros usados mais recentemente serão mostrados na parte superior. O IntelliSense limpa o histórico dos membros usados mais recentemente entre cada sessão do Visual Studio.
substituição
Quando você digita a substituição e pressiona a tecla Space , o IntelliSense exibe todos os membros válidos da classe base que você pode substituir em uma caixa de listagem pop-up. Digitar o tipo de retorno do método depois override solicita ao IntelliSense que mostre apenas os métodos que retornam o mesmo tipo. Se o IntelliSense não conseguir encontrar correspondências, ele exibirá todos os membros da classe base.
IntelliSense aprimorado para IA
O Visual Studio IntelliCode fornece listas de conclusão do IntelliSense aprimoradas por inteligência artificial. O IntelliCode prevê a API correta mais provável a ser usada em vez de apenas apresentar uma lista alfabética de membros. Ele usa seu contexto de código atual e padrões para fornecer a lista dinâmica.
Geração automática de código
Adicionar usando
A operação Adicionar usando o IntelliSense adiciona automaticamente as diretivas necessárias using ao arquivo de código. Esse recurso permite que você mantenha o foco no código que está escrevendo em vez de exigir que você mude seu foco para outra parte do código.
Para iniciar a operação Adicionar usando , posicione o cursor em uma referência de tipo que não pode ser resolvida. Por exemplo, quando você cria um aplicativo de console e, em seguida, adiciona XmlReader ao corpo do Main método, uma linha de rabiscos vermelho aparece nessa linha de código porque a referência de tipo não pode ser resolvida. Em seguida, você pode invocar a operação Adicionar usando por meio do menu Ações Rápidas . O item de menu usando <namespace> só fica visível quando o cursor é posicionado na referência não resolvida.
Para este exemplo, para adicionar automaticamente a using diretiva ao código, selecione o ícone de lâmpada de erro e, em seguida, escolha usar System.Xml;.
Adicionar ausente usando diretivas na colagem
O IntelliSense pode adicionar automaticamente diretivas ausentes using ao seu código quando você cola um tipo no arquivo de código. Esse recurso economiza tempo automatizando a tarefa de adicionar ausente usando diretivas ao colar um tipo em um arquivo.
Para ativar esta funcionalidade:
- Selecione Ferramentas>Opções.
- Selecione Editor> de TextoC# (ou Visual Basic) >Avançado no painel esquerdo.
- Em Usar Diretivas, selecione Adicionar ausente usando diretivas na colagem.
Remover e classificar usos
A opção Remover e Classificar Usos classifica e remove e using declarações extern sem alterar o comportamento do código-fonte. Com o tempo, os arquivos de origem podem se tornar muito grandes e difíceis de ler devido a diretivas desnecessárias e desorganizadas using . A opção Remover e Classificar Usos compacta o código-fonte removendo diretivas não usadas using e melhora a legibilidade classificando-as.
Para usar essa opção, selecione Editar>Usos de Classificação do> na barra de menus ou clique com o botão direito do mouse no editor de código e selecione Remover e Classificar Usos.
Implementar interface
O IntelliSense fornece uma opção para ajudá-lo a implementar uma interface enquanto você trabalha no editor de código. Normalmente, para implementar uma interface corretamente, você deve criar uma declaração de método para cada membro da interface em sua classe. Depois de digitar o nome de uma interface em uma declaração de classe, o IntelliSense exibirá uma lâmpada de Ações Rápidas . A lâmpada oferece a opção de implementar a interface automaticamente, usando nomenclatura explícita ou implícita. Em nomenclatura explícita, as declarações de método carregam o nome da interface. Em nomenclatura implícita, as declarações de método não indicam a interface à qual pertencem. Um método de interface explicitamente nomeado só pode ser acessado por meio de uma instância de interface e não por meio de uma instância de classe. Para obter mais informações, consulte a implementação da interface explícita.
Implementar interface gera o número mínimo de stubs de método necessários para atender à interface. Se uma classe base implementar partes da interface, esses stubs não serão regenerados.
Implementar classe base abstrata
O IntelliSense fornece uma opção para ajudá-lo a implementar membros de uma classe base abstrata automaticamente enquanto trabalha no editor de código. Normalmente, implementar membros de uma classe base abstrata requer a criação de uma nova definição de método para cada método da classe base abstrata em sua classe derivada. Depois de digitar o nome de uma classe base abstrata em uma declaração de classe, o IntelliSense exibirá uma lâmpada de Ações Rápidas . A lâmpada oferece a opção de implementar os métodos de classe base automaticamente.
Os stubs de método gerados pelo recurso Implementar Classe Base Abstrata são modelados pelo snippet de código definido no arquivo MethodStub.snippet. Snippets de código são modificáveis. Para obter mais informações, consulte Passo a passo: criar um snippet de código no Visual Studio.
Gerar com base no uso
O recurso Gerar do Uso permite que você use classes e membros antes de defini-los. Você pode gerar um stub para qualquer classe, construtor, método, propriedade, campo ou enumeração que deseja usar, mas não está definido. Você pode gerar novos tipos e membros sem deixar seu local atual no código. Isso minimiza a interrupção do fluxo de trabalho.
Uma linha de rabiscos vermelho aparece em cada identificador indefinido. Quando você passa o ponteiro do mouse sobre o identificador, uma mensagem de erro aparece em uma dica de ferramenta. Para exibir as opções apropriadas, use um dos seguintes procedimentos:
Selecione o identificador indefinido. Uma lâmpada de erro de Ações Rápidas aparece sob o identificador. Selecione a lâmpada de erro.
Selecione o identificador indefinido e pressione Ctrl+Period (.).
Clique com o botão direito do mouse no identificador indefinido e selecione Ações Rápidas e Refatorações.
As seguintes opções podem aparecer:
Gerar propriedade
Gerar campo
Gerar método
Gerar classe
Gerar novo tipo (para uma classe, struct, interface ou enumeração)
Gerar manipuladores de eventos
No editor de código, o IntelliSense pode ajudá-lo a conectar métodos (manipuladores de eventos) a campos de eventos.
Quando você digita o += operador após um campo de evento em um arquivo .cs , o IntelliSense solicita que você tenha a opção de pressionar a tecla Tab . Isso insere uma nova instância de um delegado que aponta para o método que está tratando o evento.
Se você pressionar a tecla Tab , o IntelliSense concluirá automaticamente a instrução para você e exibirá a referência do manipulador de eventos como texto selecionado no editor de código. Para concluir a conexão automática de eventos, o IntelliSense solicita que você pressione a tecla Tab novamente para criar um stub vazio para o manipulador de eventos.
Se você pressionar a tecla Tab novamente, o IntelliSense adicionará um stub de método com a assinatura correta e colocará o cursor no corpo do manipulador de eventos.
Se um novo delegado criado pelo IntelliSense fizer referência a um manipulador de eventos existente, o IntelliSense comunicará essas informações na dica de ferramenta. Em seguida, você pode modificar essa referência; o texto já está selecionado no editor de código. Caso contrário, a conexão automática de eventos agora está concluída.
Observação
Use o comando Navegar para Trás no menu Exibir (Ctrl+-) para retornar à instrução de conexão de evento.