IntelliSense en Visual Studio

IntelliSense es un auxiliar de finalización de código que incluye una serie de características: Lista de miembros, Información de parámetros, Información rápida y Palabra completa. Estas características permiten obtener más información sobre el código que usa, realizar el seguimiento de los parámetros que escribe y agregar llamadas a propiedades y a métodos con tan solo presionar unas teclas.

Muchos aspectos de IntelliSense son específicos del lenguaje. Para obtener más información sobre IntelliSense para distintos lenguajes, consulte los temas listados en la sección Contenido relacionado.

Lista de miembros

Después de escribir un carácter desencadenador (por ejemplo, un punto (.) en código administrado o :: en C++), aparece una lista de los miembros válidos de un tipo (o espacio de nombres). Si sigue escribiendo caracteres, la lista se filtrará y solo incluirá los miembros que empiecen por esos caracteres o donde el principio de cualquier palabra del nombre empiece por esos caracteres. IntelliSense también efectúa búsquedas de coincidencias "camel case", por lo que puede escribir la primera letra de cada palabra con camel case del nombre del miembro para ver las coincidencias.

Después de seleccionar un elemento, puede insertarlo en el código presionando la tecla TAB o insertando un espacio. Si selecciona un elemento y escribe un punto, el elemento aparece seguido del punto, con lo que se muestra otra lista de miembros. Cuando seleccione un elemento, obtendrá la información rápida del mismo antes de insertarlo.

En la lista de miembros, el icono de la izquierda representa el tipo del miembro, como el espacio de nombres, la clase, la función o la variable. La lista puede ser bastante larga, así que presione Re Pág y Av Pág para subir o bajar en ella.

Visual Studio Member List

Screenshot of IntelliSense List Members feature.

Puede invocar la característica Lista de miembros manualmente. Para ello, presione CTRL+J y elija Edición>IntelliSense>Lista de miembros o seleccione el botón Lista de miembros de la barra de herramientas del editor. Cuando se invoca en una línea en blanco o fuera de un ámbito reconocible, la lista muestra símbolos del espacio de nombres global.

Para desactivar la lista de miembros de forma predeterminada (de manera que no aparezca a menos que se invoque específicamente), vaya a Herramientas>Opciones>Editor de texto>Todos los idiomas y anule la selección de Lista de miembros automática. Si quiere desactivar la lista de miembros únicamente para un lenguaje concreto, vaya a la configuración General de ese lenguaje.

También puede cambiar al modo de sugerencias, en el que solo se inserta en el código el texto que se escribe. Por ejemplo, si escribe en un identificador que no está en la lista y presiona la tecla TAB en modo de finalización, la entrada reemplaza al identificador escrito. Para alternar entre el modo de finalización y el modo de sugerencias, presione CTRL+Alt+Barra espaciadora o seleccione Edición>IntelliSense>Alternar el modo de finalización.

También puede cambiar al modo de sugerencias, en el que solo se inserta en el código el texto que se escribe. Por ejemplo, si escribe en un identificador que no está en la lista y presiona la tecla TAB en modo de finalización, la entrada reemplaza al identificador escrito. Para alternar entre el modo de finalización y el modo de sugerencias, presione Ctrl+Alt+Barra espaciadora, o elija Editar>IntelliSense>Cambiar entre la finalización automática y de solo tabulación de IntelliSense.

Información de parámetros

La información de parámetros proporciona información acerca del número, los nombres y los tipos de parámetros que requiere un método, un parámetro de tipo genérico de atributo (en C#) o una plantilla (en C++).

El parámetro en negrita indica el siguiente parámetro requerido a medida que escribe la función. En el caso de funciones sobrecargadas, se puede utilizar las teclas de flecha Arriba y Abajo para ver información de parámetros alternativos para las sobrecargas de funciones.

Parameter Info

Screenshot of IntelliSense Parameter Info feature.

Cuando se agregan funciones y parámetros con comentarios de documentación XML, los comentarios se muestran como Información de parámetros. Para obtener más información, vea Proporcionar comentarios del código XML.

Para invocar manualmente la información de parámetros, elija Edición>IntelliSense>Información de parámetros, presione CTRL+MAYÚS+Barra espaciadora o seleccione el botón Información de parámetros de la barra de herramientas del editor.

Información rápida

La opción Información rápida muestra la declaración completa de cualquier identificador del código.

Visual Studio Quick Info

Screenshot of IntelliSense Quick Info feature.

Cuando se selecciona un miembro en el cuadro Lista de miembros, también aparece la información rápida.

Parameter Info in a C# code file

Screenshot of IntelliSense Quick Info & Parameter Info feature.

Para invocar manualmente la información rápida, elija Edición>IntelliSense>Información rápida, presione CTRL+K, CTRL+I o seleccione el botón Información rápida de la barra de herramientas del editor.

Si una función está sobrecargada, es posible que IntelliSense no muestre información para todas las formas de la sobrecarga.

Para desactivar información rápida del código de C++, vaya a Herramientas>Opciones>Editor de texto>C/C++>Avanzadas y establezca Información rápida automática en false.

Palabra completa

La opción Palabra completa escribe el resto del nombre de una variable, un comando o una función después de que haya escrito suficientes caracteres como para reconocerlo. Para invocar la función de palabra completa, elija Edición>IntelliSense>Palabra completa, presione Ctrl+Barra espaciadora o seleccione el botón Palabra completa de la barra de herramientas del editor.

Opciones de IntelliSense

Las opciones de IntelliSense están activadas de forma predeterminada. Para desactivarlas, haga clic en Herramientas>Opciones>Editor de texto>Todo los idiomas y anule la selección de Información de parámetros o de Lista de miembros automática si no quiere usar la característica Lista de miembros.

Sugerencia

Si quiere cambiar la apariencia de los elementos de la interfaz de usuario en Visual Studio, vaya a Herramientas>Opciones>Entorno>Fuentes y colores. Para obtener más información sobre esta configuración y cómo interactuar con ella, vea Cuadro de diálogo Fuentes y colores, Entorno, Opciones.

Iconos de IntelliSense

Los iconos de IntelliSense pueden transmitir un significado adicional con los modificadores de icono. Se trata de estrellas, corazones y candados superpuestos encima del icono del objeto que transmiten un significado de protegido, interno o privado, respectivamente.

Icono Accesibilidad Descripción
Public Icon Modifier Clase pública El acceso no está restringido.
Protected Icon Modifier Clase protegida El acceso está limitado a la clase contenedora o a los tipos derivados de la clase contenedora.
Protected Internal Icon Modifier Clase interna protegida El acceso está limitado al ensamblado actual o a los tipos derivados de la clase contenedora.
Internal Icon Modifier Clase interna El acceso está limitado al ensamblado actual.
Private Icon Modifier Clase privada El acceso está limitado a la clase contenedora o a los tipos derivados de la clase contenedora que hay en el ensamblado actual. (Disponible desde C# 7.2.)

Solución de problemas de IntelliSense

En algunos casos, es posible que las opciones de IntelliSense no funcionen como esperaba.

El cursor está debajo de un error de código. Quizá no pueda usar IntelliSense si existe una función incompleta u otro error en el código encima del cursor, ya que IntelliSense no puede analizar los elementos del código. Puede resolver este problema marcando como comentario el código correspondiente.

El cursor está en un comentario de código. No puede usar IntelliSense si el cursor está en un comentario del archivo de código fuente.

El cursor está en un literal de cadena. No puede usar IntelliSense si el cursor está en las comillas de un literal de cadena, como en el siguiente ejemplo:

MessageBox( hWnd, "String literal|")

Las opciones automáticas están desactivadas. De forma predeterminada, IntelliSense funciona automáticamente, pero puede deshabilitarlo. También puede invocar una característica IntelliSense incluso cuando la finalización de instrucciones automática se encuentre deshabilitada.