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.

Vedi anche