C# - Estructuras
En C#, una estructura es un tipo de datos de tipo de valor. Le ayuda a hacer que una sola variable contenga datos relacionados de varios tipos de datos. La estructura palabra clave se utiliza para crear una estructura.
Las estructuras se utilizan para representar un registro. Suponga que desea realizar un seguimiento de sus libros en una biblioteca. Es posible que desee realizar un seguimiento de los siguientes atributos de cada libro:
- Título
- Autor
- Asunto
- Identificación del libro
Definición de una estructura
Para definir una estructura, debe usar la instrucción struct. La instrucción struct define un nuevo tipo de datos, con más de un miembro para su programa.
Por ejemplo, esta es la forma en que puede declarar la estructura Libro:
struct Books { public string title; public string author; public string subject; public int book_id; };
El siguiente programa muestra el uso de la estructura −
Demostración en vivousing System; struct Books { public string title; public string author; public string subject; public int book_id; }; public class testStructure { public static void Main(string[] args) { Books Book1; /* Declare Book1 of type Book */ Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ Book1.title = "C Programming"; Book1.author = "Nuha Ali"; Book1.subject = "C Programming Tutorial"; Book1.book_id = 6495407; /* book 2 specification */ Book2.title = "Telecom Billing"; Book2.author = "Zara Ali"; Book2.subject = "Telecom Billing Tutorial"; Book2.book_id = 6495700; /* print Book1 info */ Console.WriteLine( "Book 1 title : {0}", Book1.title); Console.WriteLine("Book 1 author : {0}", Book1.author); Console.WriteLine("Book 1 subject : {0}", Book1.subject); Console.WriteLine("Book 1 book_id :{0}", Book1.book_id); /* print Book2 info */ Console.WriteLine("Book 2 title : {0}", Book2.title); Console.WriteLine("Book 2 author : {0}", Book2.author); Console.WriteLine("Book 2 subject : {0}", Book2.subject); Console.WriteLine("Book 2 book_id : {0}", Book2.book_id); Console.ReadKey(); } }
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −
Book 1 title : C Programming Book 1 author : Nuha Ali Book 1 subject : C Programming Tutorial Book 1 book_id : 6495407 Book 2 title : Telecom Billing Book 2 author : Zara Ali Book 2 subject : Telecom Billing Tutorial Book 2 book_id : 6495700
Características de las estructuras de C#
Ya ha utilizado una estructura simple llamada Libros. Las estructuras en C# son bastante diferentes de las de C o C++ tradicionales. Las estructuras de C# tienen las siguientes características −
-
Las estructuras pueden tener métodos, campos, indexadores, propiedades, métodos de operadores y eventos.
-
Las estructuras pueden tener constructores definidos, pero no destructores. Sin embargo, no puede definir un constructor predeterminado para una estructura. El constructor predeterminado se define automáticamente y no se puede cambiar.
-
A diferencia de las clases, las estructuras no pueden heredar otras estructuras o clases.
-
Las estructuras no se pueden utilizar como base para otras estructuras o clases.
-
Una estructura puede implementar una o más interfaces.
-
Los miembros de la estructura no se pueden especificar como abstractos, virtuales o protegidos.
-
Cuando crea un objeto de estructura usando el Nuevo operador, se crea y se llama al constructor apropiado. A diferencia de las clases, las estructuras se pueden instanciar sin utilizar el operador New.
-
Si no se usa el operador Nuevo, los campos permanecen sin asignar y el objeto no se puede usar hasta que se inicialicen todos los campos.
Clase versus estructura
Las clases y las estructuras tienen las siguientes diferencias básicas −
- las clases son tipos de referencia y las estructuras son tipos de valor
- las estructuras no admiten la herencia
- las estructuras no pueden tener un constructor predeterminado
A la luz de las discusiones anteriores, reescribamos el ejemplo anterior:
Demostración en vivousing System; struct Books { private string title; private string author; private string subject; private int book_id; public void getValues(string t, string a, string s, int id) { title = t; author = a; subject = s; book_id = id; } public void display() { Console.WriteLine("Title : {0}", title); Console.WriteLine("Author : {0}", author); Console.WriteLine("Subject : {0}", subject); Console.WriteLine("Book_id :{0}", book_id); } }; public class testStructure { public static void Main(string[] args) { Books Book1 = new Books(); /* Declare Book1 of type Book */ Books Book2 = new Books(); /* Declare Book2 of type Book */ /* book 1 specification */ Book1.getValues("C Programming", "Nuha Ali", "C Programming Tutorial",6495407); /* book 2 specification */ Book2.getValues("Telecom Billing", "Zara Ali", "Telecom Billing Tutorial", 6495700); /* print Book1 info */ Book1.display(); /* print Book2 info */ Book2.display(); Console.ReadKey(); } }
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −
Title : C Programming Author : Nuha Ali Subject : C Programming Tutorial Book_id : 6495407 Title : Telecom Billing Author : Zara Ali Subject : Telecom Billing Tutorial Book_id : 6495700
Lenguaje C
- Estructuras y clases en C ++
- Semáforos:servicios públicos y estructuras de datos
- Reseña del libro:digitalizar o morir
- Un futuro muy humano
- Tecnología de almacenamiento de datos magnéticos de próxima generación
- Los 17 mejores libros de programación para leer en 2021
- Java - Estructuras de datos
- C - Estructuras
- C - definición de tipo
- Estructuras de datos de C++
- Cómo las estructuras reticulares impresas en 3D pueden mejorar las piezas