Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

estructura C#

Estructura C#

En este tutorial, aprenderá sobre estructuras en C# con la ayuda de ejemplos.

La estructura es como una clase en C# que se usa para almacenar datos. Sin embargo, a diferencia de las clases, una estructura es un tipo de valor.

Supongamos que queremos almacenar el nombre y la edad de una persona. Podemos crear dos variables:nombre y edad y almacenar valor.

Sin embargo, supongamos que queremos almacenar la misma información de varias personas.

En este caso, crear variables para una persona individual puede ser una tarea tediosa. Para superar esto, podemos crear una estructura que almacene name y edad . Ahora, esta estructura se puede usar para cada persona.


Definir estructura en C#

En C#, usamos el struct palabra clave para definir una estructura. Por ejemplo,

struct Employee  {
  public int id;
}

Aquí, id es un campo dentro de la estructura. Una estructura también puede incluir métodos, indexadores, etc.


Declarar variable de estructura

Antes de usar una estructura, primero debemos crear una variable de estructura. Usamos un nombre de estructura con una variable para declarar una variable de estructura. Por ejemplo,

struct Employee {
  public int id;
}
...

// declare emp of struct Employee
Employee emp;

En el ejemplo anterior, hemos creado una estructura llamada Empleado . Aquí, hemos declarado una variable emp de la estructura Empleado .


Acceder a la estructura C#

Usamos la variable struct junto con el . operador para acceder a los miembros de una estructura. Por ejemplo,

struct Employee {
  public int id;
}
... 
// declare emp of struct Employee
Employee emp;

// access member of struct      
emp.id = 1;

Aquí, hemos usado la variable emp de una estructura Empleado con . operador para acceder a los miembros del Empleado .

emp.id = 1;

Esto accede al id campo de estructura Empleado .

Nota :tipos de datos primitivos como int , bool , float son estructuras predefinidas en C#.


Ejemplo:Estructura C#

using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public int id;

    public void getId(int id) {
      Console.WriteLine("Employee Id: " + id);
    }
  }
 
  class Program {
    static void Main(string[] args) {
 
      // declare emp of struct Employee
      Employee emp;
      
      // accesses and sets struct field
      emp.id = 1;

      // accesses struct methods
      emp.getId(emp.id);

      Console.ReadLine();
    }
  }
}

Salida

Employee Id: 1

En el programa anterior, hemos creado una estructura llamada Employee . Contiene un campo id y un método getId() .

Dentro del Programa clase, hemos declarado una variable emp de estructura Empleado . Luego usamos el emp variable para acceder a campos y métodos de la clase.

Nota :También podemos instanciar una estructura usando el new palabra clave. Por ejemplo,

Employee emp = new Employee();

Aquí, esta línea llama al constructor sin parámetros de la estructura e inicializa todos los miembros con valores predeterminados.


Constructores en estructura C#

En C#, una estructura también puede incluir constructores. Por ejemplo,

struct Employee {

  public int id;

  // constructor 
  public Employee(int employeeId) {
   id = employeeId
  }
}

Aquí, hemos creado un constructor parametrizado Employee() con parámetro employeeId .

Nota :No podemos crear constructores sin parámetros en C# versión 9.0 o inferior.


Ejemplo:Constructor en estructuras C#

using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public int id;
    
    public string name;

    // parameterized constructor
    public Employee(int employeeId, string employeeName) {
   
      id = employeeId;
      name = employeeName;
    }
  }
 
  class Program {
    static void Main(string[] args) {
 
      // calls constructor of struct
      Employee emp = new Employee(1, "Brian");

      Console.WriteLine("Employee Name: " + emp.name);
      Console.WriteLine("Employee Id: " + emp.id);

      Console.ReadLine();
    }
  }
}

Salida

Employee Name: Brian
Employee Id: 1

En el ejemplo anterior, hemos creado un constructor parametrizado dentro del Employee estructura Dentro del constructor, hemos asignado los valores de los campos:id y nombre .

Fíjate en la línea,

Employee emp = new Employee(1, "Brian");

Al igual que en las clases de C#, estamos usando el new palabra clave para llamar al constructor. Aquí, 1 y "Brian" son argumentos pasados ​​al constructor, donde se asignan a los parámetros employeeID y nombre del empleado respectivamente."

Nota :Debemos asignar el valor para cada campo de estructura dentro del constructor parametrizado. Por ejemplo,

// error code
public Employee(int employeeID, employeeName) {
  id = employeeID;
}

Aquí, no hemos asignado el valor para el nombre campo. Entonces el código generará un error.


Propiedades en estructura C#

También podemos usar propiedades dentro de una estructura C#. Por ejemplo,

using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public int id;
    
    // creates property
    public int Id {

      // returns id field
      get {
        return id;
      }

      // sets id field
      set {
        id = value;
      }
    }
  }
 
  class Program {
    static void Main(string[] args) {
 
      // calls the constructor of struct
      Employee emp = new Employee();

      emp.Id = 1;
      Console.WriteLine("Employee Id: " + emp.Id);

      Console.ReadLine();

    }
  }
}

Salida

Employee Id: 1

En el ejemplo anterior, tenemos Id propiedad dentro del Employee estructura

El obtener método devuelve el id campo y el conjunto El método asigna el valor al id campo.


Diferencia entre clase y estructura en C#

En C#, las clases y las estructuras tienen un aspecto similar. Sin embargo, existen algunas diferencias entre ellos.

Una clase es un tipo de referencia, mientras que una estructura es un tipo de valor. Por ejemplo,

using System;
namespace CsharpStruct {
 
  // defining class
  class Employee {
    public string name;

  }
 
  class Program {
    static void Main(string[] args) {

      Employee emp1 = new Employee();
      emp1.name = "John";

      // assign emp1 to emp2
      Employee emp2 = emp1;
      emp2.name = "Ed";
      Console.WriteLine("Employee1 name: " + emp1.name);

      Console.ReadLine();
    }
  }
}

Salida

Employee1 name: Ed

En el ejemplo anterior, hemos asignado el valor de emp1 a emp2 . El emp2 objeto se refiere al mismo objeto que emp1 . Entonces, una actualización en emp2 actualiza el valor de emp1 automáticamente.

Por eso una clase es un tipo de referencia .

Al contrario de las clases, cuando asignamos una variable de estructura a otra, el valor de la estructura se copia a la variable asignada. Entonces, actualizar una variable de estructura no afecta a la otra. Por ejemplo,

using System;
namespace CsharpStruct {
 
  // defining struct
  struct Employee {
    public string name;

  }
 
  class Program {
    static void Main(string[] args) {

      Employee emp1 = new Employee();
      emp1.name = "John";

      // assign emp1 to emp2
      Employee emp2 = emp1;
      emp2.name = "Ed";
      Console.WriteLine("Employee1 name: " + emp1.name);
      
      Console.ReadLine();
    }
  }
}

Salida

Employee1 name: John

Cuando asignamos el valor de emp1 a emp2 , un nuevo valor emp2 es creado. Aquí, el valor de emp1 se copia a emp2 . Entonces, cambia en emp2 no afecta a emp1 .

Esta es la razón por la que struct es un tipo de valor .

Además, la herencia no es posible en las estructuras, mientras que es una característica importante de las clases de C#.


Lenguaje C

  1. estructura C
  2. Estructuras C y punteros
  3. C Estructura y Función
  4. Cómo evitar perder en el competitivo "futuro del trabajo"
  5. Estructura C++ con ejemplo
  6. ¿Puede la robótica de fabricación aumentar la seguridad de los empleados?
  7. Por qué es hora de mejorar la programación de empleados
  8. Para reducir el riesgo, considere la revisión de antecedentes del empleado
  9. Cuatro formas de reforzar el compromiso de los empleados en medio de COVID-19
  10. DVIRC da la bienvenida a los nuevos empleados y promueve a un empleado valioso
  11. Una emocionante categoría de tecnología emergente:análisis de productividad de los empleados