Estructuras (Guía de programación de C#)

Los structs se definen mediante la palabra clave struct, por ejemplo:

public struct PostalAddress
{
    // Fields, properties, methods and events go here...
}

Casi todas los structs comparten la misma sintaxis que las clases, aunque están más limitadas que éstas:

  • Dentro de una declaración de struct, los campos no se pueden inicializar a menos que se declaren como constantes o estáticos.

  • Un struct no puede declarar un constructor predeterminado (es decir, un constructor sin parámetros) ni un destructor.

  • Los structs se copian en la asignación. Cuando se asigna un struct a una nueva variable, se copian todos los datos, y cualquier modificación que se realice en la nueva copia no afecta a los datos de la copia original. Es importante tenerlo en cuenta a la hora de usar colecciones de tipos de valor como Dictionary<string, myStruct>.

  • Los structs son tipos de valor y las clases son tipos de referencia.

  • A diferencia de las clases, es posible crear instancias de los structs sin utilizar un operador new.

  • Los structs pueden declarar constructores que tienen parámetros.

  • Un struct no puede heredar de otro struct o clase, ni puede ser la base de una clase. Todos los structs heredan directamente de System.ValueType, que hereda de System.Object.

  • Un struct puede implementar interfaces.

  • Un struct se puede utilizar como tipo que acepta valores null y se le puede asignar un valor null.

Secciones relacionadas

Para obtener más información:

Vea también

Referencia

Clases y estructuras (Guía de programación de C#)

Clases (Guía de programación de C#)

Conceptos

Guía de programación de C#

Diseño de estructuras