La estructura es un tipo de valor y una colección de variables de diferentes tipos de datos bajo una sola unidad. Es casi similar a una clase porque ambos son tipos de datos definidos por el usuario y ambos contienen muchos tipos de datos diferentes. C# proporciona la capacidad de utilizar tipos de datos predefinidos. Sin embargo, a veces el usuario puede necesitar definir sus propios tipos de datos, que también se conocen como tipos de datos definidos por el usuario . Aunque viene bajo el tipo de valor, el usuario puede modificarlo según los requisitos y es por eso que también se denomina tipo de datos definido por el usuario.
Definición de estructura: en C#, la estructura se define mediante structpalabra clave. Usando la palabra clave struct, se puede definir la estructura que consta de diferentes tipos de datos en ella. Una estructura también puede contener constructores, constantes, campos, métodos, propiedades, indexadores y eventos, etc.
- Sintaxis:
Access_Modifier struct structure_name { // Fields // Parameterized constructor // Constants // Properties // Indexers // Events // Methods etc. }
- Ejemplo:
CSHARP
// C# program to illustrate the // Declaration of structure using System; namespace ConsoleApplication { // Defining structure public struct Person { // Declaring different data types public string Name; public int Age; public int Weight; } class Geeks { // Main Method static void Main(string[] args) { // Declare P1 of type Person Person P1; // P1's data P1.Name = "Keshav Gupta"; P1.Age = 21; P1.Weight = 80; // Displaying the values Console.WriteLine("Data Stored in P1 is " + P1.Name + ", age is " + P1.Age + " and weight is " + P1.Weight); } } }
Data Stored in P1 is Keshav Gupta, age is 21 and weight is 80
- Explicación: en el código anterior, se crea una estructura con el nombre «Persona» con los miembros de datos Nombre , Edad y Peso . En el método principal, se crea P1 del tipo de estructura Persona. Ahora, P1 puede acceder a sus miembros de datos con la ayuda de .(punto) Operador .
Copiar estructura: en C#, el usuario puede copiar un objeto de estructura en otro usando el operador ‘=’ (asignación).
- Sintaxis:
Structure_object_destination = structure_object_source;
- Ejemplo:
CSHARP
// C# program to illustrate copy the structure using System; namespace ConsoleApplication { // Defining structure public struct Person { // Declaring different data types public string Name; public int Age; public int Weight; } class Geeks { // Main Method static void Main(string[] args) { // Declare P1 of type Person Person P1; // P1's data P1.Name = "Keshav Gupta"; P1.Age = 21; P1.Weight = 80; // Declare P2 of type Person Person P2; // Copying the values of P1 into P2 P2 = P1; // Displaying the values of P1 Console.WriteLine("Values Stored in P1"); Console.WriteLine("Name: " +P1.Name); Console.WriteLine("Age: " +P1.Age); Console.WriteLine("Weight: " +P1.Weight); Console.WriteLine(""); // Displaying the values of P2 Console.WriteLine("Values Stored in P2"); Console.WriteLine("Name: " +P2.Name); Console.WriteLine("Age: " +P2.Age); Console.WriteLine("Weight: " +P2.Weight); } } }
Values Stored in P1 Name: Keshav Gupta Age: 21 Weight: 80 Values Stored in P2 Name: Keshav Gupta Age: 21 Weight: 80
- Explicación: Los miembros de datos de la estructura Persona se inicializan con la ayuda de P1 y los valores de los miembros de datos pueden ser copiados a P2 por P1 usando ‘=’ (operador de asignación).
Anidamiento de estructuras: C# permite la declaración de una estructura en otra estructura y este concepto se denomina anidamiento de la estructura.
- Ejemplo:
CSHARP
// C# program to illustrate Nesting of structures using System; namespace ConsoleApplication { // first structure defined // with public modifier public struct Address { // data member of Address structure public string City; public string State; } // Another structure struct Person { // data member of Person structure public string Name; public int Age; // Nesting of Address structure // by creating A1 of type Address public Address A1; } class Geeks { // Main method static void Main(string[] args) { // Declare p1 of type Person Person p1; // Assigning values to the variables p1.Name = "Raman"; p1.Age = 12; // Assigning values to the nested // structure data members p1.A1.City = "ABC_City"; p1.A1.State = "XYZ_State"; Console.WriteLine("Values Stored in p1"); Console.WriteLine("Name: " +p1.Name); Console.WriteLine("Age: " +p1.Age); Console.WriteLine("City: " +p1.A1.City); Console.WriteLine("State: " +p1.A1.State); } } }
Values Stored in p1 Name: Raman Age: 12 City: ABC_City State: XYZ_State
Puntos importantes sobre las estructuras:
- Una vez que las estructuras quedan fuera del alcance, se desasigna automáticamente.
- Se crea mucho más fácil y rápidamente que los tipos de montón.
- Usando la estructura, se vuelve fácil copiar los valores de la variable en la pila.
- Una estructura es un tipo de valor, mientras que una clase es un tipo de referencia.
Diferencia entre estructuras y clase:
Categoría | Estructura | Clase |
---|---|---|
Tipo de datos | Tipo de valor | Tipo de referencia |
Operación de asignación | Copia el valor | Copia la referencia |
Constructores sin parámetros | No permitido | Permitió |
Herencia | No soportado | Siempre apoyado |
Publicación traducida automáticamente
Artículo escrito por keshav_786 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA