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
oNarrowing
.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