IntelliSense in Visual Studio

IntelliSense è un supporto per il completamento del codice che include numerose funzionalità: Elenca membri, Informazioni sui parametri, Informazioni rapide e Parola completa. Queste funzionalità consentono di acquisire altre informazioni sul codice in uso, tengono traccia dei parametri che si digitano e aggiungono le chiamate a proprietà e metodi con poche sequenze di tasti.

Molti aspetti di IntelliSense sono specifici del linguaggio. Per altre informazioni su IntelliSense per lingue diverse, vedere gli argomenti elencati nella sezione Contenuto correlato.

Elencare i membri

Un elenco di membri validi di un tipo (o dello spazio dei nomi) viene visualizzato dopo avere digitato un carattere del trigger, ad esempio un punto (.) nel codice gestito o :: in C++. Se si continua a digitare caratteri, l'elenco viene filtrato per includere solo i membri o una qualsiasi parola all'interno del nome che iniziano con tali caratteri. IntelliSense esegue anche la corrispondenza con notazione Camel, pertanto è possibile digitare solo la prima lettera di ogni parola con notazione Camel nel nome del membro per visualizzare le corrispondenze.

Dopo avere selezionato un elemento, è possibile inserirlo nel codice premendo Tab o digitando uno spazio. Se si seleziona un elemento e si digita un punto, l'elemento viene visualizzato seguito dal punto; questa condizione comporta la visualizzazione di un altro elenco di membri. Quando si seleziona un elemento ma prima di inserirlo, si ottengono informazioni rapide per l'elemento.

Nell'elenco dei membri, l'icona a sinistra rappresenta il tipo del membro, ad esempio spazio dei nomi, classe, funzione o variabile. L'elenco può essere piuttosto lungo, pertanto è possibile premere PGSU e PGGIÙ per spostarsi rispettivamente verso l'alto o verso il basso nell'elenco.

Visual Studio Member List

Screenshot of IntelliSense List Members feature.

È possibile richiamare la funzionalità Elenca membri manualmente digitando CTRL+J, scegliendo Modifica>IntelliSense>Elenca membri o il pulsante Elenca membri sulla barra degli strumenti dell'editor. Se richiamato in una riga vuota o al di fuori di un ambito riconoscibile, l'elenco conterrà simboli dello spazio dei nomi globale.

Per disattivare Elenca membri per impostazione predefinita (in modo che non venga visualizzato a meno che non venga richiamato in modo specifico), passare a Strumenti>Opzioni>Editor>di testo Tutti i linguaggi e deselezionare Membri elenco automatico. Se si vuole disattivare la funzionalità Elenca membri solo per un linguaggio specifico, andare sulle impostazioni Generali per quel linguaggio.

È inoltre possibile modificare la modalità di suggerimento, in cui solo il testo digitato viene inserito nel codice. Ad esempio, se si immette un identificatore non presente nell'elenco e si preme Tab, in modalità di completamento la voce sostituisce l'identificatore digitato. Per passare dalla modalità di completamento alla modalità di suggerimento e viceversa, premere CTRL+ALT+BARRA SPAZIATRICE o scegliere Modifica>IntelliSense>Attiva/disattiva modalità di terminazione.

È inoltre possibile modificare la modalità di suggerimento, in cui solo il testo digitato viene inserito nel codice. Ad esempio, se si immette un identificatore non presente nell'elenco e si preme Tab, in modalità di completamento la voce sostituisce l'identificatore digitato. Per passare dalla modalità di completamento alla modalità di suggerimento, premere CTRL+ALT+O scegliere Modifica>intelliSense Passa tra il completamento automatico e il completamento intelliSense>solo tabulazioni.

Informazioni sui parametri

Informazioni sul parametro fornisce informazioni relative al numero, ai nomi e ai tipi di parametri richiesti da un metodo, un parametro di tipo generico di attributo (in C#) o da un modello (in C++).

Il parametro in grassetto indica il parametro successivo richiesto durante la digitazione della funzione. Per le funzioni in overload, è possibile usare i tasti di direzioneFreccia SU e Freccia GIÙ per visualizzare informazioni sui parametri alternativi per gli overload della funzione.

Parameter Info

Screenshot of IntelliSense Parameter Info feature.

Se si annotano funzioni e parametri con commenti relativi alla documentazione XML, i commenti verranno visualizzati come informazioni sui parametri. Per altre informazioni, vedere Inserire commenti XML per la generazione di documentazione.

È possibile richiamare manualmente le informazioni sul parametro scegliendo Modifica>IntelliSense>Informazioni sul parametro, premendo CTRL+MAIUSC+BARRA SPAZIATRICE oppure scegliendo il pulsante Informazioni sul parametro sulla barra degli strumenti dell'editor.

Informazioni rapide

Informazioni rapide visualizza la dichiarazione completa per ogni identificatore incluso nel codice.

Visual Studio Quick Info

Screenshot of IntelliSense Quick Info feature.

Quando si seleziona un membro nella casella Elenca membri, vengono visualizzate anche le informazioni rapide.

Parameter Info in a C# code file

Screenshot of IntelliSense Quick Info & Parameter Info feature.

È possibile richiamare manualmente informazioni rapide scegliendo Modifica>informazioni rapide intelliSense>premendo CTRL K, CTRL++I o scegliendo il pulsante Informazioni rapide sulla barra degli strumenti dell'editor.

Se una funzione è sottoposta a overload, è possibile che IntelliSense non visualizzi le informazioni per tutte le forme di overload.

È possibile disattivare le informazioni rapide per il codice C++ tramite Strumenti>Opzioni>Editor di testo>C/C++>Avanzate, impostando Informazioni rapide automatiche su false.

Completa parola

Completa parola completa la digitazione del nome di una variabile, di un comando o di una funzione dopo che sono stati immessi caratteri sufficienti a identificare il termine in modo univoco. È possibile richiamare Completa parola scegliendo Modifica>IntelliSense>Completa parola, premendo CTRL+BARRA SPAZIATRICE oppure scegliendo il pulsante Completa parola sulla barra degli strumenti dell'editor.

Opzioni IntelliSense

Le opzioni IntelliSense sono attive per impostazione predefinita. Per disattivarli, passare a Strumenti>Opzioni>Editor>di testo Tutti i linguaggi e deselezionare Informazioni sui parametri o Membri elenco automatico se non si desidera la funzionalità Membri elenco.

Suggerimento

Per modificare l'aspetto degli elementi dell'interfaccia utente in Visual Studio, passare a Strumenti>Opzioni>Ambiente>Tipi di carattere e colori. Per altre informazioni su queste impostazioni e su come interagire con essi, vedere Tipi di carattere e colori, ambiente, finestra di dialogo Opzioni.

Icone di IntelliSense

Le icone in IntelliSense possono trasmettere un significato aggiuntivo con i modificatori di icona. Si tratta di stelle, cuori e lucchetti sovrapposti all'icona dell'oggetto per indicare, rispettivamente, che l'oggetto è protetto, interno o privato.

Icon Accessibilità Descrizione
Public Icon Modifier Classe pubblica L'accesso non è limitato.
Protected Icon Modifier Classe protetta L'accesso è limitato alla classe o ai tipi derivati dalla classe che li contiene.
Protected Internal Icon Modifier Classe interna protetta L'accesso è limitato all'assembly corrente o ai tipi derivati dalla classe che li contiene.
Internal Icon Modifier Classe interna L'accesso è limitato all'assembly corrente.
Private Icon Modifier Classe privata L'accesso è limitato alla classe o ai tipi derivati dalla classe che li contiene all'interno dell'assembly corrente. Disponibile da C# 7.2.

Risolvere i problemi di IntelliSense

Le opzioni IntelliSense potrebbero non funzionare come previsto, in alcuni casi.

Il cursore si trova sotto un errore del codice. Non è possibile usare IntelliSense se una funzione incompleta o un altro errore esiste nel codice sopra il cursore perché IntelliSense potrebbe non essere in grado di analizzare gli elementi di codice. È possibile risolvere questo problema commentando il codice applicabile.

Il cursore si trova in un commento del codice. Non è possibile usare IntelliSense se il cursore si trova in un commento nel file di origine.

Il cursore si trova in un valore letterale stringa. Non è possibile usare IntelliSense se il cursore si trova tra virgolette intorno a un valore letterale stringa, come nel seguente esempio:

MessageBox( hWnd, "String literal|")

Le opzioni automatiche sono disattivate. Per impostazione predefinita, il funzionamento di IntelliSense è automatico, ma è possibile disabilitarlo. Anche se il completamento automatico delle istruzioni è disabilitato, è possibile richiamare una funzionalità IntelliSense.