Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
IntelliSense de C# es una ayuda de finalización de código específica del lenguaje. Está disponible al escribir código de C# en el editor de código y depurarlo en la ventana de comandos Modo inmediato .
Listas de finalización
Las listas de finalización de IntelliSense de C# contienen tokens de Miembros de lista, Palabra completa y mucho más. Proporciona acceso rápido a:
Miembros de un tipo o espacio de nombres
Variables, comandos y nombres de funciones
Fragmentos de código
Palabras clave de lenguaje
Métodos de extensión
Las listas de finalización de C# filtran los tokens irrelevantes y los tokens preseleccionados en función del contexto. Para obtener más información, vea Listas de finalización filtradas.
Fragmentos de código en listas de finalización
En C#, la lista de finalización incluye fragmentos de código para ayudarle a insertar fácilmente cuerpos predefinidos de código en el programa. Los fragmentos de código aparecen en la lista de finalización como texto de acceso directo del fragmento de código. Para obtener más información sobre los fragmentos de código que están disponibles en C# de forma predeterminada, consulte Fragmentos de código de C#.
Palabras clave de idioma en listas de finalización
La lista de finalización incluye palabras clave del lenguaje C# para ayudarle a insertarlas en el programa. Para obtener más información sobre las palabras clave del lenguaje C#, vea Palabras clave de C#.
Métodos de extensión en listas de finalización
En C#, la lista de finalización incluye métodos de extensión que están en el ámbito.
Los métodos de extensión usan un icono diferente al de los métodos de instancia. Cuando un método de instancia y un método de extensión con el mismo nombre están en el ámbito, la lista de finalización muestra el icono del método de extensión.
Nota:
En el caso String de los objetos, la lista de finalización no muestra todos los métodos de extensión.
Listas de finalización filtradas
IntelliSense quita miembros innecesarios de la lista de finalización mediante filtros. C# filtra las listas de finalización que aparecen para estos elementos:
Interfaces y clases base: IntelliSense quita automáticamente elementos innecesarios de las listas de finalización de la interfaz y de la clase base, esta eliminación incluye bases de declaración de clases y listas de interfaces y listas de restricciones. Por ejemplo, las enumeraciones no aparecen en la lista de finalización de las clases base, ya que no se pueden usar enumeraciones para las clases base. La lista de finalización de clases base contiene solo interfaces y espacios de nombres. Si selecciona un elemento de la lista y, a continuación, escribe una clave coma, IntelliSense quita las clases base de la lista de finalización. Lo hace porque C# no admite varias herencias. El mismo comportamiento también se produce para las cláusulas de restricción.
Atributos: cuando se aplica un atributo a un tipo, la lista de finalización se filtra para que la lista contenga solo los tipos que descienden de los espacios de nombres que contienen esos tipos. Por ejemplo: Attribute.
Cláusulas Catch: solo aparecen palabras clave try-catch válidas en la lista de finalización.
Inicializadores de objeto: solo los miembros que se pueden inicializar aparecen en la lista de finalización.
palabra clave new: cuando escriba
newy, a continuación, presione la tecla Espaciadora , aparecerá una lista de finalización. IntelliSense selecciona automáticamente un elemento de la lista, en función del contexto del código. Por ejemplo, IntelliSense selecciona automáticamente los elementos de la lista de finalización para las declaraciones y para las instrucciones return en los métodos.palabra clave enum: al presionar la tecla Space después de un signo igual para una asignación de enumeración, aparece una lista de finalización. IntelliSense selecciona automáticamente un elemento de la lista, en función del contexto del código. Por ejemplo, IntelliSense selecciona automáticamente los elementos de la lista de finalización después de escribir la
returnpalabra clave y al realizar una declaración.operadores as and is: IntelliSense muestra automáticamente una lista de finalización filtrada al presionar la tecla Space después de escribir la
aspalabra clave ois.Eventos: al escribir la palabra clave
event, la lista de finalización solo contiene tipos delegados.Ayuda de parámetros: IntelliSense ordena automáticamente la primera sobrecarga del método que coincide con los parámetros mientras se escriben. Si hay varias sobrecargas de método disponibles, puede usar las flechas arriba y abajo para navegar a la siguiente sobrecarga posible en la lista.
Miembros usados más recientemente
IntelliSense recuerda los miembros que ha seleccionado recientemente en el cuadro Emergente List Members (Lista de miembros) para la finalización automática del nombre de objeto. La próxima vez que use lista de miembros, los miembros usados más recientemente se muestran en la parte superior. IntelliSense borra el historial de los miembros usados más recientemente entre cada sesión de Visual Studio.
anular
Al escribir invalidación y, a continuación, presionar la tecla Espacio , IntelliSense muestra todos los miembros de clase base válidos que puede invalidar en un cuadro de lista emergente. Al escribir el tipo de valor devuelto del método después override de pedir a IntelliSense que muestre solo los métodos que devuelven el mismo tipo. Si IntelliSense no encuentra ninguna coincidencia, muestra todos los miembros de la clase base.
IntelliSense mejorado con IA
IntelliCode de Visual Studio proporciona listas de finalización de IntelliSense mejoradas con inteligencia artificial. IntelliCode predice la API más probable que use en lugar de simplemente presentar una lista alfabética de miembros. Usa el contexto de código actual y los patrones para proporcionar la lista dinámica.
Generación automática de código
Agregar mediante
La operación Agregar mediante IntelliSense agrega automáticamente directivas necesarias using al archivo de código. Esta característica le permite mantener el foco en el código que está escribiendo en lugar de requerir que cambie el foco a otra parte del código.
Para iniciar la operación Agregar mediante , coloque el cursor en una referencia de tipo que no se pueda resolver. Por ejemplo, al crear una aplicación de consola y, a continuación, agregar XmlReader al cuerpo del Main método, aparece una línea de subrayado ondulado rojo en esa línea de código porque no se puede resolver la referencia de tipo. A continuación, puede invocar la operación Agregar mediante el menú Acciones rápidas . El elemento de menú usar <espacio de nombres> solo es visible cuando el cursor se coloca en la referencia sin resolver.
En este ejemplo, para agregar automáticamente la using directiva al código, seleccione el icono de bombilla de error y, a continuación, elija usar System.Xml;.
Adición de directivas using que faltan al pegar
IntelliSense puede agregar automáticamente directivas que faltan using al código al pegar un tipo en el archivo de código. Esta característica le ahorra tiempo automatizando la tarea de agregar directivas using que faltan al pegar un tipo en un archivo.
Para habilitar esta característica:
- Seleccione Herramientas>Opciones.
- Seleccione Editor> de textoC# (o Visual Basic) >Avanzado en el panel izquierdo.
- En Usar directivas, seleccione Agregar directivas using que faltan al pegar.
Quitar y ordenar los usos
La opción Remove and Sort Usings ordena y quita y using declara extern sin cambiar el comportamiento del código fuente. Con el tiempo, los archivos de código fuente pueden ser demasiado grandes y difíciles de leer debido a directivas innecesarias y no organizadas using . La opción Quitar y ordenar usos compacta el código fuente quitando las directivas sin usar using y mejora la legibilidad ordenándolas.
Para usar esta opción, seleccione Editar>usos de ordenación de> en la barra de menús, o haga clic con el botón derecho en el editor de código y seleccione Quitar y ordenar usos.
Implementación de la interfaz
IntelliSense proporciona una opción para ayudarle a implementar una interfaz mientras trabaja en el editor de código. Normalmente, para implementar una interfaz correctamente, debe crear una declaración de método para cada miembro de la interfaz de la clase. Después de escribir el nombre de una interfaz en una declaración de clase, IntelliSense muestra una bombilla de Acciones rápidas . La bombilla le ofrece la opción de implementar la interfaz automáticamente, usando nombres explícitos o implícitos. En nomenclatura explícita, las declaraciones de método llevan el nombre de la interfaz. En nomenclatura implícita, las declaraciones de método no indican la interfaz a la que pertenecen. Solo se puede tener acceso a un método de interfaz con nombre explícito a través de una instancia de interfaz y no a través de una instancia de clase. Para obtener más información, consulte Implementación explícita de la interfaz.
La interfaz de implementación genera el número mínimo de códigos auxiliares de método necesarios para satisfacer la interfaz. Si una clase base implementa partes de la interfaz, esos códigos auxiliares no se regeneran.
Implementación de la clase base abstracta
IntelliSense proporciona una opción para ayudarle a implementar miembros de una clase base abstracta automáticamente mientras trabaja en el editor de código. Normalmente, para implementar miembros de una clase base abstracta, es necesario crear una nueva definición de método para cada método de la clase base abstracta de la clase derivada. Después de escribir el nombre de una clase base abstracta en una declaración de clase, IntelliSense muestra una bombilla de Acciones rápidas . La bombilla le ofrece la opción de implementar automáticamente los métodos de clase base.
El fragmento de código de código definido en el archivo MethodStub.snippet modela los códigos auxiliares generados por la característica Implementar clase base abstracta. Los fragmentos de código son modificables. Para obtener más información, vea Tutorial: Crear un fragmento de código en Visual Studio.
Generación a partir del uso
La característica Generar a partir de uso permite usar clases y miembros antes de definirlos. Puede generar un código auxiliar para cualquier clase, constructor, método, propiedad, campo o enumeración que quiera usar, pero no se definen. Puede generar nuevos tipos y miembros sin salir de la ubicación actual en el código. Al hacerlo, se minimiza la interrupción del flujo de trabajo.
Aparece una línea de subrayado ondulado rojo bajo cada identificador no definido. Al mantener el puntero del mouse sobre el identificador, aparece un mensaje de error en una información sobre herramientas. Para mostrar las opciones adecuadas, use uno de los procedimientos siguientes:
Seleccione el identificador no definido. Aparece una bombilla de error de Acciones rápidas bajo el identificador. Seleccione la bombilla de error.
Seleccione el identificador no definido y presione Ctrl+Punto (.).
Haga clic con el botón derecho en el identificador indefinido y, a continuación, seleccione Acciones rápidas y refactorizaciones.
Pueden aparecer las siguientes opciones:
Generar propiedad
Generar campo
Generar método
Generar clase
Generar nuevo tipo (para una clase, estructura, interfaz o enumeración)
Generación de controladores de eventos
En el editor de código, IntelliSense puede ayudarle a enlazar métodos (controladores de eventos) a campos de eventos.
Al escribir el += operador después de un campo de evento en un archivo .cs , IntelliSense le pedirá la opción para presionar la tecla Tab . Esto inserta una nueva instancia de un delegado que apunta al método que controla el evento.
Si presiona la tecla Tab , IntelliSense finaliza automáticamente la instrucción y muestra la referencia del controlador de eventos como texto seleccionado en el editor de código. Para completar el enlace automático de eventos, IntelliSense le pide que presione de nuevo la tecla Tab para crear un código auxiliar vacío para el controlador de eventos.
Si vuelve a presionar la tecla Tab , IntelliSense agrega un código auxiliar de método con la firma correcta y coloca el cursor en el cuerpo del controlador de eventos.
Si un nuevo delegado creado por IntelliSense hace referencia a un controlador de eventos existente, IntelliSense comunica esta información en la información sobre herramientas. A continuación, puede modificar esta referencia; el texto ya está seleccionado en el editor de código. De lo contrario, el enlace automático de eventos ahora está completo.
Nota:
Use el comando Navegar hacia atrás en el menú Ver (Ctrl+-) para volver a la instrucción de enlace de eventos.