Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Structure C#

Structure C#

Dans ce didacticiel, vous découvrirez les structures en C# à l'aide d'exemples.

Le struct (structure) est comme une classe en C# qui est utilisée pour stocker des données. Cependant, contrairement aux classes, une structure est un type valeur.

Supposons que nous voulions stocker le nom et l'âge d'une personne. Nous pouvons créer deux variables :nom et âge et stocker de la valeur.

Cependant, supposons que nous voulions stocker les mêmes informations de plusieurs personnes.

Dans ce cas, la création de variables pour une personne individuelle peut être une tâche fastidieuse. Pour surmonter cela, nous pouvons créer une structure qui stocke nom et âge . Maintenant, cette structure peut être utilisée pour chaque personne.

Définir la structure en C#

En C#, on utilise le struct mot-clé pour définir une structure. Par exemple,

struct Employee  {
  public int id;
}

Ici, identifiant est un champ à l'intérieur de la structure. Une structure peut également inclure des méthodes, des indexeurs, etc.

Déclarer une variable de structure

Avant d'utiliser une structure, nous devons d'abord créer une variable de structure. Nous utilisons un nom de structure avec une variable pour déclarer une variable de structure. Par exemple,

struct Employee {
  public int id;
}
...

// declare emp of struct Employee
Employee emp;

Dans l'exemple ci-dessus, nous avons créé une structure nommée Employee . Ici, nous avons déclaré une variable emp de la structure Employé .

Accéder à la structure C#

Nous utilisons la variable struct avec le . Opérateur pour accéder aux membres d'une structure. Par exemple,

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

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

Ici, nous avons utilisé la variable emp d'une structure Employé avec . opérateur pour accéder aux membres de l'Employé .

emp.id = 1;

Ceci accède à l'id champ de la structure Employé .

Remarque  :Types de données primitifs comme int , bool , float sont des structures prédéfinies en C#.

Exemple :structure 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();
    }
  }
}

Sortie

Employee Id: 1

Dans le programme ci-dessus, nous avons créé une structure nommée Employee . Il contient un champ id et une méthode getId() .

À l'intérieur du programme class, nous avons déclaré une variable emp de la structure Employé . Nous avons ensuite utilisé le emp variable pour accéder aux champs et aux méthodes de la classe.

Remarque :Nous pouvons également instancier une structure en utilisant le new mot-clé. Par exemple,

Employee emp = new Employee();

Ici, cette ligne appelle le constructeur sans paramètre de la structure et initialise tous les membres avec des valeurs par défaut.

Constructeurs en structure C#

En C#, une structure peut également inclure des constructeurs. Par exemple,

struct Employee {

  public int id;

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

Ici, nous avons créé un constructeur paramétré Employee() avec le paramètre employeeId .

Remarque  :Nous ne pouvons pas créer de constructeurs sans paramètre dans la version 9.0 ou inférieure de C#.

Exemple :Constructeur dans les structures 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();
    }
  }
}

Sortie

Employee Name: Brian
Employee Id: 1

Dans l'exemple ci-dessus, nous avons créé un constructeur paramétré dans Employee structure. A l'intérieur du constructeur, nous avons assigné les valeurs des champs :id et nom .

Remarquez la ligne,

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

Comme dans les classes C#, nous utilisons le new mot clé pour appeler le constructeur. Ici, 1 et "Brian" sont des arguments passés au constructeur, où ils sont assignés aux paramètres employeeID et employeeName respectivement."

Remarque :Nous devons attribuer la valeur pour chaque champ de struct à l'intérieur du constructeur paramétré. Par exemple,

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

Ici, nous n'avons pas attribué de valeur pour le nom champ. Le code générera donc une erreur.

Propriétés dans la structure C#

Nous pouvons également utiliser des propriétés à l'intérieur d'une structure C#. Par exemple,

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();

    }
  }
}

Sortie

Employee Id: 1

Dans l'exemple ci-dessus, nous avons Id propriété à l'intérieur de Employé structure.

Le obtenir la méthode renvoie l'id champ et l'ensemble la méthode attribue la valeur à id champ.

Différence entre classe et struct en C#

En C#, les classes et les structures se ressemblent. Cependant, il existe quelques différences entre eux.

Une classe est un type référence alors qu'une structure est un type valeur. Par exemple,

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();
    }
  }
}

Sortie

Employee1 name: Ed

Dans l'exemple ci-dessus, nous avons attribué la valeur de emp1 à emp2 . Le emp2 objet fait référence au même objet que emp1 . Donc, une mise à jour dans emp2 met à jour la valeur de emp1 automatiquement.

C'est pourquoi une classe est un type de référence .

Contrairement aux classes, lorsque nous affectons une variable de structure à une autre, la valeur de la structure est copiée dans la variable affectée. Ainsi, la mise à jour d'une variable de structure n'affecte pas l'autre. Par exemple,

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();
    }
  }
}

Sortie

Employee1 name: John

Lorsque nous attribuons la valeur de emp1 à emp2 , une nouvelle valeur emp2 est créé. Ici, la valeur de emp1 est copié dans emp2 . Donc, changez en emp2 n'affecte pas emp1 .

C'est pourquoi struct est un type de valeur .

De plus, l'héritage n'est pas possible dans les structs alors que c'est une caractéristique importante des classes C#.


Langue C

  1. Structure C
  2. Structures C et pointeurs
  3. C Structure et fonction
  4. Comment éviter de perdre dans l'« avenir du travail » concurrentiel
  5. Pourquoi il est temps d'améliorer la planification des employés
  6. Pour réduire les risques, pensez à revérifier les antécédents de l'employé
  7. Quatre façons de renforcer l'engagement des employés au milieu de la COVID-19
  8. DVIRC accueille les nouvelles recrues et promeut un employé précieux
  9. Une catégorie de technologie émergente passionnante :l'analyse de la productivité des employés