Caracteres especiales en código (Visual Basic)
A veces hay que usar caracteres especiales en el código, es decir, caracteres que no son alfabéticos ni numéricos. Los caracteres de puntuación y especiales del juego de caracteres de Visual Basic tienen varios usos, desde organizar el texto del programa hasta definir las tareas que realiza el compilador o el programa compilado. No especifican que se deba realizar una operación.
Paréntesis
Use paréntesis al definir un procedimiento, como Sub
o Function
. Debe incluir todas las listas de argumentos del procedimiento entre paréntesis. También se usan paréntesis para colocar variables o argumentos en grupos lógicos, especialmente para invalidar el orden predeterminado de prioridad de los operadores en una expresión compleja. Esto se ilustra en el siguiente ejemplo:
Dim a, b, c, d, e As Double
a = 3.2
b = 7.6
c = 2
d = b + c / a
e = (b + c) / a
Después de la ejecución del código anterior, el valor de d
es 8,225 y el valor de e
es 3. El cálculo de d
usa la prioridad predeterminada de /
sobre +
y es equivalente a d = b + (c / a)
. Los paréntesis del cálculo de e
invalidan la prioridad predeterminada.
Separadores
Los separadores hacen lo que su nombre sugiere: separan secciones de código. En Visual Basic, el carácter separador son los dos puntos (:
). Use separadores cuando quiera incluir varias instrucciones en una sola línea en lugar de en líneas independientes. Esto ahorra espacio y mejora la legibilidad del código. En el ejemplo siguiente se muestran tres instrucciones separadas por dos puntos.
a = 3.2 : b = 7.6 : c = 2
Para obtener más información, vea Procedimiento para interrumpir y combinar instrucciones en el código.
El carácter de dos puntos (:
) también se usa para identificar una etiqueta de instrucción. Para obtener más información, vea Procedimiento para etiquetar instrucciones.
Concatenación
Use el operador &
para la concatenación, o vinculación de cadenas. No lo confunda con el operador +
, que agrega valores numéricos. Si usa el operador +
para concatenar al operar con valores numéricos, puede obtener resultados incorrectos. En el siguiente ejemplo se muestra cómo hacerlo.
var1 = "10.01"
var2 = 11
resultA = var1 + var2
resultB = var1 & var2
Después de la ejecución del código anterior, el valor de resultA
es 21,01 y el valor de resultB
es "10,0111".
Operadores de acceso a miembros
Para acceder a un miembro de un tipo, use el operador de punto (.
) o signo de exclamación (!
) entre el nombre del tipo y el nombre del miembro.
Operador de punto (.)
Use el operador .
en una clase, estructura, interfaz o enumeración como operador de acceso a miembros. El miembro puede ser un campo, una propiedad, un evento o un método. Esto se ilustra en el siguiente ejemplo:
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()
Operador de signo de exclamación (!)
Use el operador !
solo en una clase o interfaz como operador de acceso de diccionarios. La clase o interfaz debe tener una propiedad predeterminada que acepte un único argumento String
. El identificador inmediatamente después del operador !
se convierte en el valor del argumento pasado a la propiedad predeterminada como una cadena. En el siguiente ejemplo se muestra cómo hacerlo.
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
Las tres líneas de salida de MsgBox
muestran el valor 32856
. La primera línea usa el acceso tradicional a la propiedad index
, la segunda usa el hecho de que index
es la propiedad predeterminada de la clase hasDefault
, y la tercera usa el acceso a diccionarios a la clase.
Observe que el segundo operando del operador !
debe ser un identificador válido de Visual Basic no incluido entre comillas dobles (" "
). Es decir, no se puede usar una variable de cadena o un literal de cadena. El siguiente cambio a la última línea de la llamada MsgBox
genera un error porque "X"
es un literal de cadena incluido.
"Dictionary access returns " & hD!"X")
Nota
Las referencias a las colecciones predeterminadas deben ser explícitas. En concreto, no se puede usar el operador !
en una variable enlazada tardíamente.
El carácter !
también se usa como carácter de tipo Single
.