Compartir a través de


Tipo de datos definido por el usuario

Actualización: noviembre 2007

Contiene los datos en el formato que defina el usuario. La instrucción Structure define el formato.

Las versiones anteriores de Visual Basic admitían el tipo definido por el usuario (UDT). La versión actual amplía el tipo definido por el usuario a una estructura. Una estructura es una concatenación de uno o varios miembros de diversos tipos de datos. Visual Basic trata una estructura como una unidad única, aunque también puede tener acceso individualmente a sus miembros.

Comentarios

Defina y utilice un tipo de datos de estructura cuando necesite combinar varios tipos de datos en una única unidad o cuando ninguno de los tipos de datos básicos satisfaga sus necesidades.

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

Formato de declaración

Una declaración de estructura se inicia con la instrucción Structure (Instrucción) y finaliza con la instrucción EndStructure. La instrucción Structure proporciona el nombre de la estructura, que también actúa como identificador del tipo de datos que está definiendo la estructura. Otras partes del código pueden utilizar este identificador para declarar variables, parámetros y valores devueltos de la función para que pertenezca al tipo de datos de esta estructura.

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

Niveles de acceso a miembros

Debe declarar cada miembro utilizando una instrucción Instrucción Dim (Visual Basic) o una instrucción que especifique el nivel de acceso, como Public (Visual Basic), Friend (Visual Basic) o Private (Visual Basic). Si utiliza una instrucción Dim, el nivel de acceso es público de manera predeterminada.

Sugerencias de programación

  • Consumo de memoria. Como en 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 la 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 está interactuando con componentes que no se han escrito para .NET Framework, por ejemplo objetos de automatización u objetos COM, tenga presente que los tipos de datos definidos por el usuario en otros entornos no son compatibles con los tipos de estructuras de Visual Basic.

  • Ampliación. No existen conversiones automáticas a un tipo de datos de estructuras o desde un tipo de datos de estructuras. Puede definir operadores de conversión en la estructura utilizando Operator (Instrucción) y puede declarar cada operador de conversión para que sea Widening o Narrowing.

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

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

Ejemplo

En el siguiente modelo se muestra el esquema de 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

Vea también

Conceptos

Uso eficiente de tipos de datos

Referencia

Resumen de tipos de datos (Visual Basic)

ValueType

Funciones de conversión de tipos

Resumen de conversión

Structure (Instrucción)

Widening

Narrowing

StructLayoutAttribute

Otros recursos

Estructuras: tipos de datos propios