Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Guida al Visual Basic .NET - Guida pratica ad IntelliSense

Guida al Visual Basic .NET

Capitolo 109° - Guida pratica ad IntelliSense

<< Precedente Prossimo >>

Data la mole di gente che non usa o non sa usare IntelliSense, ho deciso di scrivere questo capitolo in più per spiegare l'utilizzo di questa funzione vitale del compilatore.

Attivare IntelliSense

Per attivare IntelliSense in Visual Studio o Visual Basic Express, sotto la voce Tools (Strumenti), scegliere Options (opzioni), quindi selezionare ed espandere la voce Text Editor e aprire il pannello Basic, come mostrato in figura:

VBNet_2_E2_6.PNG

Il pannello Basic, nelle opzioni


Assicuratevi che le voci "Auto list members" e "Parameter information" siano spuntate, quindi premete OK.
Ora, ogniqualvolta dovrete scegliere un tipo, accedere ai membri di una classe, passare parametri ad un metodo e molto altro, IntelliSense vi dar? suggerimenti mostrando una lista di tutte le possibili scelte che potete fare (fornendo anche una descrizione di ogni possibilità). Alcuni esempi:

VBNet_2_E2_7.PNG

Scelta del tipo di una variabile



VBNet_2_E2_8.PNG

Accesso ai membri di un oggetto



VBNet_2_E2_9.PNG

Passaggio di parametri a un metodo





VBNet_2_E2_10.PNG

Assegnazione di valori a un enumeratore


Ora che avete visto le potenzialità di IntelliSense spero che inizierete ad utilizzarlo, o almeno, proseguiate nella lettura.

IntelliSense distingue i membri di classe

Tutte le icone che IntelliSense usa per contrassegnare gli oggetti della lista dei suggerimenti non sono assolutamente messe a caso. Hanno un significato ben preciso:

IS_field.bmp Campo (variabile)
IS_const.bmp Costante o Valore di enumeratore
IS_method.bmp Metodo
IS_property.bmp Proprietà
IS_structure.bmp Struttura
IS_enum.bmp Enumeratore
IS_interface.bmp Interfaccia
IS_class.bmp Classe
IS_namespace.bmp Namespace
IS_module.bmp Modulo
IS_delegate.bmp Delegato
IS_event.bmp Evento
IS_operator.bmp Operatore
IS_basetype.bmp Tipo base (String, Byte, Short, Integer, Long, Single, Double, Boolean, Date, Object, SByte e Char). In alcuni casi, ad esempio nell'autocompletamente degli statement "Exit" (come Exit For, Exit Do, Exit Sub, eccetera...), indica lo statement stesso. Nell'autocompletamento di VB2008, indica anche ogni parola chiave

Inoltre, sempre tramite le icone, è possibile inferire il livello di accesso di cui ogni membro è dotato. Infatti, l'icona di ognuna delle categorie sopra citate può essere modificata con l'aggiunta di un piccolo simbolo in basso a sinistra:

IS_friend.bmp Il piccolo rombo azzurro indica che il membro è Friend
IS_protected.bmp La piccola chiave gialla indica che il membro è Protected
IS_private.bmp Il piccolo lucchetto grigio indica che il membro è Private

Se il membro è Public, non avrà nessun simbolo aggiuntivo. Invece, per i membri Protected Friend si assume come simbolo lo stesso di quelli Protected.

IntelliSense suggerisce i parametri di ogni metodo

Quando vi è stato suggerito di usare un metodo, non occorre che vi facciate dire anche quali devono essere i suoi parametri, poiché IntelliSense ve li suggerisce automaticamente, corredandoli, qualora sia possibile, di una descrizione. Ad esempio, questo codice:

Dim B As New Bitmap()

restituirà un errore: "Overload resolution failed because no accessible New accepts this number of arguments", ossia stiamo tentando di usare un costruttore senza parametri quando la classe in questione non espone nessun New senza parametri. Perciò dobbiamo obbligatoriamente passare un qualche argomento al costruttore, ma non sapiamo quale. Basta aprire la parentesi dopo Bitmap per vedere la lista di suggerimenti fornita da IntelliSense:

IS_Overloads.PNG
come si vede ci sono ben 12 overload, ossia 12 versioni dello stesso metodo e ognuna di questa ha una sua descrizione. Alla fine, sicuramente troveremmo quello che stiamo cercando, ad esempio l'overload 12, che è quello più semplice e che ci consente di inizializzare una nuova bitmap con date dimensioni, oppure il 5, con un solo parametro di tipo stringa che contiene il nome del file. Insomma, tutto quello che è documentato su msdn lo potete trovare anche usando l'IntelliSense.

IntelliSense permette di trovare classi e funzioni nuove

Una funzione meno canonica, ma sicuramente altrettanto utile, di IntelliSense sta nel fatto che, grazie alla lista di suggerimenti forniti nella determinazione del tipo di una variabile, potete esplorare TUTTE le classi ESISTENTI sul vostro computer (ovviamente quelle importante nell'applicazione corrente). Solo guardandone il nome potete cercare di capire la loro funzione e, con qualche ricerca, trovare quello che vi interessa. Ad esempio, girovaghiamo per System.Net... troviamo un interessante namespace NetworkInformation e vi scorgiamo numerose classi che iniziano con "Ping": abbiamo trovato il luogo giusto per eseguire un ping da codice. Provando a inizializzare un nuovo oggetto Net.NetworkInformation.Ping non si ottengono errori, quindi se ne possono esplorare le funzioni. Salta subito all'occhio la funzione Send, grazie alla quale possiamo ottenere molte informazioni utili sul viaggio dei nostri pacchetti in rete. Non c'era neanche bisogno di cercare su Internet!

IntelliSense è vostro amico

Quindi non fate a meno di usarlo e imparate a sfruttarne tutte le potenzialità, sempre e comunque!

<< Precedente Prossimo >>
A proposito dell'autore

C#, TypeScript, java, php, EcmaScript (JavaScript), Spring, Hibernate, React, SASS/LESS, jade, python, scikit, node.js, redux, postgres, keras, kubernetes, docker, hexo, etc...