visual variable valor una tipos sub retornar que pattern pasaron pasar parametros función funcion espera error detalles con argumentos vb6

vb6 - valor - ¿Qué hace poner un signo de exclamación(!) Delante de una variable de referencia de objeto?



sub con parametros vba excel (2)

¿Qué hace poner un signo de exclamación ( ! ) Delante de una variable de referencia de objeto en Visual Basic 6.0?

Por ejemplo, veo lo siguiente en el código:

!RelativePath.Value = mstrRelativePath

¿Qué hace el ! ¿media?


Es casi seguro que es una declaración dentro de un bloque With:

With blah !RelativePath.Value = mstrRelativePath End With

que es sintaxis de azúcar para

blah("RelativePath").Value = mstrRelativePath

que es sintaxis de azúcar para

blah.DefaultProperty("RelativePath").Value = mstrRelativePath

donde "DefaultProperty" es una propiedad con cero dispid que está indexada por una cadena. Como la propiedad Fields de un objeto Recordset de ADO.

Algo inevitable con el azúcar es que produce caries en los dientes. Esta es la razón por la que tiene que usar la palabra clave Set en VB6 y VBA. Porque sin él, el compilador no sabe si pretendía copiar la referencia del objeto o el valor de propiedad predeterminado del objeto. Eliminado en vb.net.


El signo de exclamación está actuando como un operador de acceso miembro, parece ...

Operadores de acceso de miembros

Para acceder a un miembro de un tipo, use el operador de punto (.) O de exclamación (!)

Tomare eso de vuelta. Es esto:

Signo de exclamación (!) Operador Use el! operador solo en una clase o interfaz como operador de acceso al diccionario. La clase o interfaz debe tener una propiedad predeterminada que acepte un único argumento de cadena. El identificador inmediatamente después de! operador se convierte en el argumento de cadena a la propiedad predeterminada.