En este artículo

Visual Basic unifica la sintaxis para las estructuras y clases, con lo que ambas entidades admiten la mayoría de las mismas características.Visual Basic unifies the syntax for structures and classes, with the result that both entities support most of the same features.Sin embargo, también hay diferencias importantes entre las clases y estructuras.However, there are also important differences between structures and classes.

Las clases tienen la ventaja de ser tipos de referencia, pasando una referencia es más eficaz que se pasa una variable de estructura con todos sus datos.Classes have the advantage of being reference types — passing a reference is more efficient than passing a structure variable with all its data.Por otro lado, las estructuras no requieren la asignación de memoria del montón global.On the other hand, structures do not require allocation of memory on the global heap.

Dado que no se puede heredar de una estructura, estructuras deben usarse sólo para objetos que no es necesario que se extenderá.Because you cannot inherit from a structure, structures should be used only for objects that do not need to be extended.Utilice estructuras cuando el objeto que desea crear tiene un tamaño de instancia pequeña y tener en cuenta las características de rendimiento de las clases y estructuras.Use structures when the object you wish to create has a small instance size, and take into account the performance characteristics of classes versus structures.

SimilitudesSimilarities

Estructuras y clases son similares en los siguientes aspectos:Structures and classes are similar in the following respects:

Niveles de acceso pueden haber individualizados los miembros de ambos.Members of both can have individualized access levels.Por ejemplo, se puede declarar un miembro Public y otra Private.For example, one member can be declared Public and another Private.

Todos los elementos de estructura son Public de forma predeterminada; la clase variables y constantes son Private de forma predeterminada, mientras que otros miembros de clase son Public de forma predeterminada.All structure elements are Public by default; class variables and constants are Private by default, while other class members are Public by default.Este comportamiento para los miembros de clase proporciona compatibilidad con el sistema de Visual Basic 6.0 de los valores predeterminados.This behavior for class members provides compatibility with the Visual Basic 6.0 system of defaults.

Las estructuras pueden tener constructores no compartidos únicamente si toman parámetros; las clases pueden tenerlos con o sin parámetros.Structures can have nonshared constructors only if they take parameters; classes can have them with or without parameters.

Asignación de Variables.Assigning Variables.Al asignar una variable de estructura a otro, o pasar una instancia de la estructura a un argumento de procedimiento, se copian los valores actuales de todos los elementos de la variable a la nueva estructura.When you assign one structure variable to another, or pass a structure instance to a procedure argument, the current values of all the variable elements are copied to the new structure.Al asignar una variable de objeto a otro, o pasar una variable de objeto a un procedimiento, se copia solo el puntero de referencia.When you assign one object variable to another, or pass an object variable to a procedure, only the reference pointer is copied.

Asignar nada.Assigning Nothing.Puede asignar el valor nada a una estructura variable, pero la instancia continúa va a asociar a la variable.You can assign the value Nothing to a structure variable, but the instance continues to be associated with the variable.Todavía puede llamar a sus métodos y tener acceso a sus elementos de datos, aunque se reinicializan elementos variable mediante la asignación.You can still call its methods and access its data elements, although variable elements are reinitialized by the assignment.

En cambio, si establece una variable de objeto en Nothing, desasocia cualquier instancia de clase y no se puede obtener acceso a todos los miembros a través de la variable hasta que asigne otra instancia.In contrast, if you set an object variable to Nothing, you dissociate it from any class instance, and you cannot access any members through the variable until you assign another instance to it.

Varias instancias.Multiple Instances.Una variable de objeto puede tener distintas instancias de clase asignadas a ella en momentos diferentes, y varias variables de objeto pueden hacer referencia a la misma instancia de clase al mismo tiempo.An object variable can have different class instances assigned to it at different times, and several object variables can refer to the same class instance at the same time.Cambios en los valores de los miembros de clase afectan a dichos miembros cuando se tiene acceso a través de otra variable que apunta a la misma instancia.Changes you make to the values of class members affect those members when accessed through another variable pointing to the same instance.

Elementos de estructura, sin embargo, están aislados dentro de su propia instancia.Structure elements, however, are isolated within their own instance.No se reflejan los cambios en sus valores en otras variables de estructura, incluso en otras instancias del mismo Structure declaración.Changes to their values are not reflected in any other structure variables, even in other instances of the same Structure declaration.

Igualdad.Equality.Comprobar la igualdad de dos estructuras debe realizarse con una elemento por elemento prueba.Equality testing of two structures must be performed with an element-by-element test.Se pueden comparar dos variables de objeto mediante el Equals método.Two object variables can be compared using the Equals method.Equals indica si las dos variables apuntan a la misma instancia.Equals indicates whether the two variables point to the same instance.