Caratteri speciali nel codice (Visual Basic)
A volte è necessario usare caratteri speciali nel codice, ovvero caratteri non alfabetici o numerici. La punteggiatura e i caratteri speciali presenti nel set di caratteri Visual Basic vengono utilizzati per diversi scopi, dall'organizzazione del testo di programma alla definizione di attività eseguite dal compilatore o dal programma compilato. Questi caratteri non specificano l'esecuzione di un'operazione.
Parentesi
Usare le parentesi quando si definisce una routine, ad esempio Sub
o Function
. È necessario racchiudere tutti gli elenchi di argomenti di routine tra parentesi. Le parentesi vengono usate anche per inserire variabili o argomenti in gruppi logici, in particolare per eseguire l'override dell'ordine predefinito di precedenza dell'operatore in un'espressione complessa. Ciò è illustrato nell'esempio seguente.
Dim a, b, c, d, e As Double
a = 3.2
b = 7.6
c = 2
d = b + c / a
e = (b + c) / a
Dopo l'esecuzione del codice precedente, il valore di d
è 8,225 e il valore di e
è 3. Il calcolo per d
usa la precedenza predefinita di /
su +
ed è equivalente a d = b + (c / a)
. Le parentesi nel calcolo per e
sostituiscono la precedenza predefinita.
Separatori
I separatori fanno ciò che suggerisce il nome: separano le sezioni di codice. In Visual Basic il carattere separatore sono i due punti (:
). Usare i separatori quando si desiderano includere più istruzioni in una singola riga anziché in righe separate. In questo modo si risparmia spazio e si migliora la leggibilità del codice. Nell'esempio seguente vengono illustrate tre istruzioni separate da due punti.
a = 3.2 : b = 7.6 : c = 2
Per altre informazioni, vedere Procedura: Interrompere e combinare istruzioni nel codice.
Il carattere due punti (:
) viene usato anche per identificare un'etichetta di istruzione. Per altre informazioni, vedere Procedura: Etichettare le istruzioni.
Concatenation
Usare l'operatore &
per la concatenazione o il collegamento di stringhe. Non confonderlo con l'operatore +
, che aggiunge valori numerici. Se si usa l'operatore +
per concatenare quando si opera su valori numerici, è possibile che si ottengano risultati non corretti. L'esempio seguente illustra questa operazione.
var1 = "10.01"
var2 = 11
resultA = var1 + var2
resultB = var1 & var2
Dopo l'esecuzione del codice precedente, il valore di resultA
è 21.01 e il valore di resultB
è "10.0111".
Operatori di accesso ai membri
Per accedere a un membro di un tipo, usare l'operatore punto (.
) o punto esclamativo (!
) tra il nome del tipo e il nome del membro.
Punto (.) Operatore
Usare l'operatore .
su una classe, una struttura, un'interfaccia o un'enumerazione come operatore di accesso ai membri. Il membro può essere un campo, una proprietà, un evento o un metodo. Ciò è illustrato nell'esempio seguente.
Dim nextForm As New System.Windows.Forms.Form
' Access Text member (property) of Form class (on nextForm object).
nextForm.Text = "This is the next form"
' Access Close member (method) on nextForm.
nextForm.Close()
Punto esclamativo (!) Operatore
Usare l'operatore !
solo su una classe o un'interfaccia come operatore di accesso al dizionario. La classe o l'interfaccia deve avere una proprietà predefinita che accetta un singolo argomento String
. L'identificatore immediatamente successivo all'operatore !
diventa il valore dell'argomento passato alla proprietà predefinita come stringa. L'esempio seguente illustra questa operazione.
Public Class hasDefault
Default Public ReadOnly Property index(ByVal s As String) As Integer
Get
Return 32768 + AscW(s)
End Get
End Property
End Class
Public Class testHasDefault
Public Sub compareAccess()
Dim hD As hasDefault = New hasDefault()
MsgBox("Traditional access returns " & hD.index("X") & vbCrLf &
"Default property access returns " & hD("X") & vbCrLf &
"Dictionary access returns " & hD!X)
End Sub
End Class
Le tre righe di output di MsgBox
visualizzano tutte il valore 32856
. La prima riga usa l'accesso tradizionale alla proprietà index
, la seconda sfrutta il fatto che index
è la proprietà predefinita della classe e la terza usa l'accesso al dizionario alla classe hasDefault
.
Si noti che il secondo operando dell'operatore !
deve essere un identificatore di Visual Basic valido non racchiuso tra virgolette doppie (" "
). In altre parole, non è possibile usare un valore letterale stringa o una variabile stringa. La modifica seguente all'ultima riga della chiamata MsgBox
genera un errore perché "X"
è un valore letterale stringa racchiuso.
"Dictionary access returns " & hD!"X")
Nota
I riferimenti alle raccolte predefinite devono essere espliciti. In particolare, non è possibile usare l'operatore !
su una variabile a binding tardivo.
Il carattere !
viene usato anche come carattere di tipo Single
.