Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O C# IntelliSense é um auxílio de autocompletar código específico da linguagem. Ele está disponível para você quando você escreve código C# no editor de código e o depura na janela de comando 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 linguísticas
Métodos de extensão
As listas de conclusão em C# filtram tokens irrelevantes e pré-selecionam tokens com base no contexto. Para obter mais informações, consulte Listas de conclusão filtradas.
Trechos de código em listas de conclusão
Em C#, a lista de conclusão inclui trechos de código para ajudá-lo a inserir facilmente corpos de código predefinidos em seu programa. Trechos de código aparecem na lista de conclusão como o texto de atalho do trecho. Para obter mais informações sobre trechos de código disponíveis em C# por padrão, consulte Trechos de código em C#.
Palavras-chave linguísticas nas listas de conclusão
A lista de conclusão inclui palavras-chave da linguagem C# para ajudá-lo a inseri-las em seu programa. Para obter mais informações sobre palavras-chave da linguagem C#, consulte Palavras-chave 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 ambos 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 interface e classe base, Esta remoção inclui bases de declaração de classe e listas de interfaces e listas de restrições. Por exemplo, enums não aparecem na lista de conclusão para classes base, porque enums 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, em seguida, digitar uma tecla de vírgula, o IntelliSense removerá as classes base da lista de conclusão. Ele faz isso porque o C# não suporta herança múltipla. 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 descendem dos namespaces que contêm esses tipos. Por exemplo, Attribute.
Cláusulas catch: Apenas 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 Espaço , uma lista de conclusão é exibida. O IntelliSense seleciona automaticamente um item na lista, com base no contexto do seu código. Por exemplo, o IntelliSense seleciona automaticamente os itens na lista de conclusão para declarações e para instruções de retorno em métodos.palavra-chave enum: Quando você pressiona a tecla Espaço após um sinal de igual para uma atribuição de enum, uma lista de conclusão é exibida. O IntelliSense seleciona automaticamente um item na lista, com base no contexto do seu código. Por exemplo, o IntelliSense seleciona automaticamente os itens na lista de conclusão depois de digitar a
returnpalavra-chave e quando você faz uma declaração.como operadores e é: o IntelliSense exibe automaticamente uma lista de conclusão filtrada quando você pressiona a tecla Espaço depois de digitar a
aspalavra-chave ouis.Eventos: Quando você digita a palavra-chave
event, a lista de conclusão contém apenas tipos de delegados.Ajuda de parâmetros: o IntelliSense classifica automaticamente para a primeira sobrecarga de método que corresponde aos parâmetros à medida que você os insere neles. 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. Da próxima vez que utilizar a Lista de Membros, os membros utilizados mais recentemente são apresentados na parte superior. O IntelliSense limpa o histórico dos membros usados mais recentemente entre cada sessão do Visual Studio.
anular
Quando você digita substituir e pressiona a tecla Espaço , 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 que o IntelliSense mostre apenas os métodos que retornam o mesmo tipo. Se o IntelliSense não conseguir encontrar nenhuma correspondência, ele exibirá todos os membros da classe base.
IntelliSense melhorado por 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 seu arquivo de código. Esse recurso permite que você mantenha seu 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 sobre 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 método, uma linha de Main enrolamento vermelha 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 através do menu Ações Rápidas . O item de menu usando <namespace> é visível somente quando o cursor está posicionado na referência não resolvida.
Neste exemplo, para adicionar automaticamente a using diretiva ao seu código, selecione o ícone da lâmpada de erro e, em seguida, escolha usando System.Xml;.
Adicionar ausente usando diretivas em colar
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 diretivas ausentes ao colar um tipo em um arquivo.
Para ativar esta caraterística:
- SelecioneOpções de ferramentas>.
- Selecione Editor de Texto>C# (ou Visual Basic) >Avançado no painel esquerdo.
- Em Usando diretivas, selecione Adicionar ausente usando diretivas ao colar.
Remover e classificar usos
A opção Remove and Sort Usings classifica, remove using e extern declara 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 Remove and Sort Usings compacta o código-fonte removendo diretivas não utilizadas 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ódigos 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 exibe uma lâmpada de Ações Rápidas . A lâmpada dá-lhe a opção de implementar a interface automaticamente, usando nomenclatura explícita ou implícita. Sob nomenclatura explícita, as declarações de método carregam o nome da interface. Sob 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 Implementação de interface explícita.
A interface de implementação gera o número mínimo de stubs de método necessários para satisfazer a interface. Se uma classe base implementa partes da interface, esses stubs não sã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, para 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 exibe 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 Implement Abstract Base Class são modelados pelo trecho de código definido no arquivo MethodStub.snippet. Trechos de código são modificáveis. Para obter mais informações, consulte Passo a passo: Criar um trecho de código no Visual Studio.
Gerar a partir do uso
O recurso Gerar a partir 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 enum que você deseja usar, mas não está definido. Você pode gerar novos tipos e membros sem deixar sua localização atual no código. Isso minimiza a interrupção do seu fluxo de trabalho.
Uma linha de inclinação vermelha aparece sob 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ção.
As seguintes opções podem aparecer:
Gerar propriedade
Gerar campo
Método Generate
Gerar classe
Gerar novo tipo (para uma classe, struct, interface ou enum)
Gerar manipuladores de eventos
No editor de códigos, 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 a opção de pressionar a tecla Tab . Isso insere uma nova instância de um delegado que aponta para o método que manipula o evento.
Se você pressionar a tecla Tab , o IntelliSense concluirá automaticamente a instrução e exibirá a referência do manipulador de eventos como texto selecionado no editor de códigos. 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ódigos. Caso contrário, a conexão automática de eventos será concluída.
Observação
Use o comando Navegar para trás no menu Exibir (Ctrl+-) para retornar à instrução de conexão do evento.