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

Comprendre les structures C# : Définition, utilisation et différences clés

Structures C#

Apprenez à définir, instancier et travailler avec les structures C#, y compris les constructeurs, propriétés et leurs différences clés avec les classes.

En C#, une structure (struct) fonctionne de manière similaire à une classe mais est un type valeur, ce qui signifie qu'elle stocke les données directement plutôt qu'une référence.

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

Cependant, si nous devons conserver ces informations pour plusieurs personnes, déclarer des variables séparées devient fastidieux. Définir une structure contenant nom et age nous permet de réutiliser la même mise en page pour chaque personne.


Définir une structure en C#

En C#, nous utilisons le mot-clé struct pour déclarer une structure. Par exemple :

struct Employe {
    public int id;
}

Ici, id est un champ à l'intérieur de la structure. Une structure peut aussi contenir des méthodes, des indexeurs, et plus.


Déclarer une variable de structure

Avant d'utiliser une structure, vous devez créer une variable de structure. La syntaxe est :

struct Employe {
    public int id;
}
// déclarer emp de struct Employe
Employe emp;

Dans l'exemple, nous avons défini une structure nommée Employe et déclaré une variable emp de ce type.


Accès à une structure C#

Accédez aux membres de la structure en utilisant l'opérateur point (.) :

Employe emp;
emp.id = 1;

Ceci assigne la valeur 1 au champ id de la structure Employe.

Note : Les types primitifs tels que int, bool et float sont des structures pré-définies en C#.


Exemple : Structure C#

using System;
namespace CsharpStruct {
// définition de la structure
struct Employe {
    public int id;
    public void ObtenirId(int id) {
        Console.WriteLine("ID Employé : " + id);
    }
}
class Programme {
    static void Main(string[] args) {
        // déclarer emp de struct Employe
        Employe emp;
        // accède et définit le champ de la structure
        emp.id = 1;
        // accède aux méthodes de la structure
        emp.ObtenirId(emp.id);
        Console.ReadLine();
    }
}
}

Sortie

ID Employé : 1

Le programme crée une structure Employe, définit son champ id et appelle la méthode ObtenirId pour l'afficher.

Vous pouvez aussi instancier une structure avec le mot-clé new :

Employe emp = new Employe();

Ceci appelle le constructeur sans paramètre et initialise tous les champs à leurs valeurs par défaut.


Constructeurs dans les structures C#

Les structures peuvent définir des constructeurs pour initialiser les champs. Exemple :

struct Employe {
    public int id;
    // constructeur
    public Employe(int idEmploye) {
        id = idEmploye;
    }
}

Note : Avant C# 10, les structures ne peuvent pas contenir de constructeurs sans paramètre.


Exemple : Constructeur dans les structures C#

using System;
namespace CsharpStruct {
// définition de la structure
struct Employe {
    public int id;
    public string nom;
    // constructeur paramétré
    public Employe(int idEmploye, string nomEmploye) {
        id = idEmploye;
        nom = nomEmploye;
    }
}
class Programme {
    static void Main(string[] args) {
        // appelle le constructeur de la structure
        Employe emp = new Employe(1, "Brian");
        Console.WriteLine("Nom Employé : " + emp.nom);
        Console.WriteLine("ID Employé : " + emp.id);
        Console.ReadLine();
    }
}
}

Sortie

Nom Employé : Brian
ID Employé : 1

Dans cet exemple, le constructeur assigne des valeurs à tous les champs. Ne pas initialiser chaque champ entraîne une erreur de compilation.


Propriétés dans les structures C#

Les structures peuvent exposer des propriétés pour l'encapsulation. Exemple :

using System;
namespace CsharpStruct {
// définition de la structure
struct Employe {
    public int id;
    // crée une propriété
    public int Id {
        get { return id; }
        set { id = value; }
    }
}
class Programme {
    static void Main(string[] args) {
        Employe emp = new Employe();
        emp.Id = 1;
        Console.WriteLine("ID Employé : " + emp.Id);
        Console.ReadLine();
    }
}
}

Sortie

ID Employé : 1

Ici, la propriété Id fournit un accès contrôlé au champ id.


Différence entre classe et structure en C#

Bien que les classes et structures partagent une syntaxe similaire, elles diffèrent fondamentalement :

Exemple de comportement référence de classe :

using System;
namespace CsharpStruct {
    class Employe {
        public string nom;
    }
    class Programme {
        static void Main(string[] args) {
            Employe emp1 = new Employe();
            emp1.nom = "Jean";
            Employe emp2 = emp1;
            emp2.nom = "Ed";
            Console.WriteLine("Nom Employé1 : " + emp1.nom);
            Console.ReadLine();
        }
    }
}

Sortie

Nom Employé1 : Ed

Exemple de comportement valeur de structure :

using System;
namespace CsharpStruct {
    struct Employe {
        public string nom;
    }
    class Programme {
        static void Main(string[] args) {
            Employe emp1 = new Employe();
            emp1.nom = "Jean";
            Employe emp2 = emp1;
            emp2.nom = "Ed";
            Console.WriteLine("Nom Employé1 : " + emp1.nom);
            Console.ReadLine();
        }
    }
}

Sortie

Nom Employé1 : Jean

Dans l'exemple de structure, emp2 reçoit une copie de emp1, donc les modifications de emp2 n'affectent pas emp1.

Ces distinctions font des structures des choix idéaux pour de petites structures de données immuables qui bénéficient de l'allocation sur la pile et de la sémantique de valeur.

Langue C

  1. Maîtriser les structures en C : Définition, variables, accès et exemples avancés
  2. Maîtriser les structures et pointeurs en C : Guide pratique
  3. Maîtriser les structures en C : Passage, retour et gestion par référence
  4. Rester en tête dans le futur du travail : stratégies pour battre la concurrence
  5. Le cas pour moderniser la planification des employés pour booster rétention et productivité
  6. Sécurité au travail : pourquoi les revérifications régulières des antécédents des employés sont essentielles
  7. 4 stratégies éprouvées pour renforcer l'engagement des employés face à la COVID-19
  8. DVIRC promeut Alan Shell Directeur des services Lean/CI et accueille de nouvelles recrues
  9. Analytique de Productivité Employés : Débloquer les Insights à l'Ère de l'IoT