stringtranslate.com

Tipo de variante (COM)

Variant es un tipo de datos en ciertos lenguajes de programación, en particular Visual Basic , OCaml , [1] Delphi y C++ cuando se utiliza el Modelo de objetos componentes . Es una implementación del concepto homónimo en informática .

En Visual Basic (y Visual Basic para Aplicaciones ), el tipo de datos Variant es una unión etiquetada que se puede utilizar para representar cualquier otro tipo de datos (por ejemplo, entero , punto flotante , precisión simple y doble , objeto , etc.) excepto el tipo de cadena de longitud fija. En Visual Basic, cualquier variable no declarada explícitamente o cuyo tipo no se declara explícitamente se considera una variante.

Si bien no se recomienda el uso de variantes no declaradas explícitamente, pueden ser útiles cuando el tipo de datos necesario solo se puede conocer en tiempo de ejecución, cuando se espera que el tipo de datos varíe o cuando se desean parámetros opcionales y matrices de parámetros. De hecho, los lenguajes con un sistema de tipos dinámicos suelen tener la variante como el único tipo disponible para las variables.

Entre los principales cambios de Visual Basic .NET , al ser un lenguaje .NET, se encuentra el reemplazo del tipo de variante por el tipo de objeto .NET . Existen similitudes conceptuales, pero también diferencias importantes, y no existen conversiones directas entre estos dos tipos. Para las conversiones, como podría ser necesario si el código de Visual Basic .NET interactúa con un objeto COM de Visual Basic 6, la metodología normal es utilizar el método de serialización .NET .

Ejemplos

En Visual Basic, una variante denominada A se puede declarar de forma explícita o implícita:

Dim A Dim A como variante    

En Delphi , una variante denominada A se declara de la siguiente manera:

var A : variante ;  

Formato

Una variable de tipo variante, para abreviar llamada "variante", tal como se define en Visual Basic, necesita 16 bytes de almacenamiento y su diseño es el siguiente:

Tipos

A continuación se presentan algunos ejemplos de variantes que se pueden encontrar en Visual Basic. En otros lenguajes también se pueden utilizar otros tipos de variantes.

Usos comunes

Colecciones

La Collectionclase en OLE Automation puede almacenar elementos de distintos tipos de datos. Dado que el tipo de datos de estos elementos no se puede conocer en tiempo de compilación, los métodos para agregar elementos a una colección y recuperar elementos de ella utilizan variantes. Si For Eachse utiliza la construcción en Visual Basic, la variable iteradora debe ser de tipo objeto o una variante.

Llamadas al método de envío

En la automatización OLE, la IDispatchinterfaz se utiliza cuando no se puede conocer de antemano la clase de un objeto. Por lo tanto, cuando se llama a un método en un objeto de este tipo, los tipos de argumentos y el valor de retorno no se conocen en el momento de la compilación. Los argumentos se pasan como una matriz de variantes y, cuando se completa la llamada, se devuelve una variante.

Parámetros opcionales

En Visual Basic, se puede declarar que un argumento de procedimiento es opcional si se le antepone la Optionalpalabra clave. Cuando se omite el argumento, Visual Basic pasa un valor especial al procedimiento, denominado Missing en la tabla anterior, que indica que falta el argumento. Dado que el valor puede ser un valor suministrado o un valor especial, se debe utilizar una variante.

Función GetText ( Opcional ByVal Index ) Como cadena Si IsMissing ( Índice ) Entonces GetText = Item ( Índice actual ) De lo contrario GetText = Item ( Índice ) Fin si Fin de la función                  

De manera similar, la palabra clave ParamArrayse puede utilizar para pasar todos los argumentos siguientes en una matriz variante.

Véase también

Referencias

  1. ^ "Capítulo 6. Variantes / OCaml en el mundo real". v1.realworldocaml.org . Archivado desde el original el 8 de mayo de 2019.

Enlaces externos