Tipo de datos definido por el usuario

Contiene datos en un formato que usted define. La instrucción Structure define el formato.

Las versiones anteriores de Visual Basic admiten el tipo definido por el usuario (UDT). La versión actual expande el UDT a una estructura. Una estructura es una concatenación de uno o varios miembros de varios tipos de datos. Visual Basic trata a una estructura como una sola unidad, aunque también se puede acceder a sus miembros de manera individual.

Comentarios

Defina y use un tipo de datos de estructura cuando necesite combinar varios tipos de datos en una sola unidad o cuando ninguno de los tipos de datos elementales atienda sus necesidades.

El valor predeterminado de un tipo de datos de estructura consta de la combinación de los valores predeterminados de cada uno de sus miembros.

Formato de declaración

Una declaración de estructura comienza con la instrucción Structure y termina con la instrucción End Structure. La instrucción Structure proporciona el nombre de la estructura, que también es el identificador del tipo de datos que define la estructura. Otras partes del código pueden usar este identificador para declarar variables, parámetros y valores devueltos de función a fin de que sean del tipo de datos de esta estructura.

Las declaraciones entre las instrucciones Structure y End Structure definen los miembros de la estructura.

Niveles de acceso de los miembros

Debe declarar cada miembro mediante una instrucción Dim o una instrucción que especifique el nivel de acceso, como Public, Friend, o Private. Si usa una instrucción Dim, el valor predeterminado es el nivel de acceso público.

Sugerencias de programación

  • Consumo de memoria. Al igual que sucede con los demás tipos de datos compuestos, no puede calcularse de forma precisa el consumo total de memoria de una estructura sumando las asignaciones de almacenamiento nominal de sus miembros. Es más, no puede suponerse que el orden de almacenamiento en memoria sea el mismo que el orden de la declaración. Si necesita controlar el diseño de almacenamiento de una estructura, puede aplicar el atributo StructLayoutAttribute a la instrucción Structure.

  • Consideraciones de interoperabilidad. Si interactúa con componentes no escritos para .NET Framework, por ejemplo, objetos de Automation o COM, tenga en cuenta que los tipos definidos por el usuario en otros entornos no son compatibles con los tipos de estructura de Visual Basic.

  • Ampliación. No hay ninguna conversión automática en o desde ningún tipo de datos de estructura. Puede definir operadores de conversión en la estructura mediante la instrucción Operator y puede declarar que cada operador de conversión sea Widening o Narrowing.

  • Caracteres de tipo. Los tipos de datos de estructura no tienen ningún carácter de tipo literal ni carácter de tipo identificador.

  • Tipo de Framework. No hay ningún tipo correspondiente en .NET Framework. Todas las estructuras heredan de la clase System.ValueType de .NET Framework, pero ninguna estructura individual corresponde a System.ValueType.

Ejemplo

El paradigma siguiente muestra el esquema de la declaración de una estructura.

[Public | Protected | Friend | Protected Friend | Private] Structure structname
    {Dim | Public | Friend | Private} member1 As datatype1
    ' ...
    {Dim | Public | Friend | Private} memberN As datatypeN
End Structure

Consulte también