Estructuras en C#: Cómo definir y usar tipos de valor
En C#, una estructura (struct) es un tipo de dato de valor. Permite que una sola variable contenga datos relacionados de varios tipos de datos. La palabra clave struct se usa para crear una estructura.
Las estructuras se usan para representar un registro. Por ejemplo, para rastrear libros en una biblioteca, podría querer seguir estos atributos:
- Título
- Autor
- Asunto
- ID del libro
Definición de una estructura
Para definir una estructura, debe usar la sentencia struct. Esta define un nuevo tipo de dato con más de un miembro.
Ejemplo: Estructura Books
struct Books {
public string título;
public string autor;
public string asunto;
public int book_id;
};
Programa de ejemplo:
using System;
struct Books {
public string título;
public string autor;
public string asunto;
public int book_id;
};
public class testStructure {
public static void Main(string[] args) {
Books Libro1;
Books Libro2;
// Especificaciones libro 1
Libro1.título = "C Programming";
Libro1.autor = "Nuha Ali";
Libro1.asunto = "C Programming Tutorial";
Libro1.book_id = 6495407;
// Especificaciones libro 2
Libro2.título = "Telecom Billing";
Libro2.autor = "Zara Ali";
Libro2.asunto = "Telecom Billing Tutorial";
Libro2.book_id = 6495700;
// Imprimir info Libro1
Console.WriteLine("Libro 1 título: {0}", Libro1.título);
Console.WriteLine("Libro 1 autor: {0}", Libro1.autor);
Console.WriteLine("Libro 1 asunto: {0}", Libro1.asunto);
Console.WriteLine("Libro 1 book_id: {0}", Libro1.book_id);
// Imprimir info Libro2
Console.WriteLine("Libro 2 título: {0}", Libro2.título);
Console.WriteLine("Libro 2 autor: {0}", Libro2.autor);
Console.WriteLine("Libro 2 asunto: {0}", Libro2.asunto);
Console.WriteLine("Libro 2 book_id: {0}", Libro2.book_id);
Console.ReadKey();
}
}
Resultado:
Libro 1 título: C Programming
Libro 1 autor: Nuha Ali
Libro 1 asunto: C Programming Tutorial
Libro 1 book_id: 6495407
Libro 2 título: Telecom Billing
Libro 2 autor: Zara Ali
Libro 2 asunto: Telecom Billing Tutorial
Libro 2 book_id: 6495700
Características de las estructuras en C#
- Pueden tener métodos, campos, indexadores, propiedades, métodos operadores y eventos.
- Pueden tener constructores definidos, pero no destructores. No se puede definir un constructor por defecto; se define automáticamente.
- A diferencia de las clases, las estructuras no pueden heredar otras estructuras o clases.
- No pueden usarse como base para otras estructuras o clases.
- Pueden implementar una o más interfaces.
- Los miembros no pueden ser
abstract,virtualoprotected. - Al crear un objeto struct con new, se llama al constructor apropiado. A diferencia de las clases, los structs pueden instanciarse sin
new. - Si no se usa
new, los campos permanecen sin asignar y el objeto no puede usarse hasta que todos los campos se inicialicen.
Clase vs Estructura
Diferencias básicas:
- Las clases son tipos de referencia y los structs son tipos de valor
- Las estructuras no soportan herencia
- Las estructuras no pueden tener constructor por defecto
Ejemplo reescrito con métodos:
using System;
struct Books {
private string título;
private string autor;
private string asunto;
private int book_id;
public void ObtenerValores(string t, string a, string s, int id) {
título = t; autor = a; asunto = s; book_id = id;
}
public void Mostrar() {
Console.WriteLine("Título: {0}", título);
Console.WriteLine("Autor: {0}", autor);
Console.WriteLine("Asunto: {0}", asunto);
Console.WriteLine("Book_id: {0}", book_id);
}
};
public class testStructure {
public static void Main(string[] args) {
Books Libro1 = new Books();
Books Libro2 = new Books();
Libro1.ObtenerValores("C Programming", "Nuha Ali", "C Programming Tutorial", 6495407);
Libro2.ObtenerValores("Telecom Billing", "Zara Ali", "Telecom Billing Tutorial", 6495700);
Libro1.Mostrar();
Libro2.Mostrar();
Console.ReadKey();
}
}
Resultado:
Título: C Programming
Autor: Nuha Ali
Asunto: C Programming Tutorial
Book_id: 6495407
Título: Telecom Billing
Autor: Zara Ali
Asunto: Telecom Billing Tutorial
Book_id: 6495700
Lenguaje C
- Revolucionando el almacenamiento de datos: nanoestructuras magnéticas de nueva generación con capas de invisibilidad
- Top 17 Libros de Programación para Mejorar tus Habilidades de Codificación en 2021
- Mejorando Piezas con Estructuras de Celosía Impresas en 3D
- Estructuras vs Clases en C++: Guía práctica para desarrolladores embebidos
- Semaforos en Nucleus RTOS: Servicios de utilidad y estructuras de datos
- Reseña: "Digitise or Die" — Un plan para transformación impulsada por IoT
- Retener la humanidad en la era de la tecnología disruptiva
- Dominando estructuras en C: Organiza datos complejos eficientemente
- Typedef en C explicado: Simplifica tu código con nombres de tipo personalizados
- Estructuras de Datos en C++: Construyendo Programas Eficientes con Arrays, Structs y Más
- Estructuras de Datos en Java: Explorando Clases Core y Collections Framework