Structs (C# y Java)

Actualización: noviembre 2007

C# admite la palabra clave struct, que es otro elemento que se origina en C pero no está disponible en Java. struct se puede considerar como una clase ligera. Aunque las structs pueden contener constructores, constantes, campos, métodos, propiedades, indizadores, operadores y tipos anidados, se utilizan principalmente para encapsular grupos de campos relacionados. Dado que las estructuras son tipos de valor, se pueden asignar de un modo ligeramente más eficaz que las clases. Las structs difieren de las clases en que no pueden ser abstractas y no admiten la herencia de implementaciones.

En el ejemplo siguiente, se inicializa struct con la palabra clave new, se llama al constructor predeterminado sin parámetros y, a continuación, se establecen los miembros de la instancia.

public struct Customer
{
    public int ID;
    public string Name;

    public Customer(int customerID, string customerName)
    {
        ID = customerID;
        Name = customerName;
    }
}

class TestCustomer
{
    static void Main()
    {
        Customer c1 = new Customer();  //using the default constructor

        System.Console.WriteLine("Struct values before initialization:");
        System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
        System.Console.WriteLine();

        c1.ID = 100;
        c1.Name = "Robert";

        System.Console.WriteLine("Struct values after initialization:");
        System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
    }
}

Resultado

Cuando se compila y ejecuta el código anterior, el resultado muestra que las variables struct se inicializan de manera predeterminada. La variable int se inicializa en 0 y la variable string se inicializa en una cadena vacía:

Struct values before initialization:

ID = 0, Name =

Struct values after initialization:

ID = 100, Name = Robert

Vea también

Tareas

Ejemplo Structs

Conceptos

Guía de programación de C#

Referencia

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

Otros recursos

Lenguaje de programación C# para desarrolladores de Java