Le Tutoriel de C# Structure
1. Qu'est-ce que Struct?
Dans C#, Struct (structure) est un type de valeur particulier, il crée un variable pour stocker des multiple valeurs mais ces valeurs sont liées les unes et les autres.
Par exemple, l'information d'un employé comprend:
- Le numéro d'employé
- Le nom d'employé
- Le poste
Vous pouvez créer 3 variables afin de stocker ses informations de l'employé. Mais vous pouvez créer une Struct pour stocker les 3 informations dans une seule variable.
C# utilise le mot clé struct pour déclarer une Struct.
Employee.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharpStructureTutorial
{
struct Employee
{
public string empNumber;
public string empName;
public string position;
public Employee(string empNumber, string empName, string position)
{
this.empNumber = empNumber;
this.empName = empName;
this.position = position;
}
}
}
Par exemple, utilisez Struct:
EmployeeTest.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharpStructureTutorial
{
class EmployeeTest
{
public static void Main(string[] args)
{
Employee john = new Employee("E01","John", "CLERK");
Console.WriteLine("Emp Number: " + john.empNumber);
Console.WriteLine("Emp Name: " + john.empName);
Console.WriteLine("Emp Position: " + john.position);
Console.Read();
}
}
}
Exécution l'exemple:
Emp Number: E01
Emp Name: John
Emp Position: CLECK
2. Struct avec Class
Struct est fréquemment utilisée pour créer un objet qui stocke la valeur, alors que la classe est utilisée plus diversement.
- Struct ne permet d'hériter, elle ne peut pas étendre à partir certaines classes ou une struct.
- Struct ne permet pas de mettre en oeuvre (implements) Interface.
Une des Struct fréquemment utilisée dans C# est DateTime, cette struct décrit la date et le temps. Vous pouvez voir plus de l'utilisation la date et le temps de C# à:
Si struct apparaît comme un paramètre dans une méthode, elle est passée sous forme une valeur. Entre- temps, si la classe apparaît comme un paramètre dans une méthode, elle est passée comme une référence.
MyClass.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharpStructureTutorial
{
class MyClass
{
public string name = "Abc";
public MyClass(string name)
{
this.name = name;
}
}
}
MyStruct.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharpStructureTutorial
{
struct MyStruct
{
public string name;
public MyStruct(string name)
{
this.name = name;
}
}
}
MyTest.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharpStructureTutorial
{
class MyTest
{
private static void passToMe(MyClass myClass, MyStruct myStruct)
{
// Changer la valeur du champ de nom.
myClass.name = "New Name";
// Changer la valeur du champ de nom.
myStruct.name = "New Name";
}
public static void Main(string[] args)
{
MyClass myClass = new MyClass("Abc");
MyStruct myStruct = new MyStruct("Abc");
Console.WriteLine("Before pass to method");
Console.WriteLine("myClass.name = " + myClass.name);// Abc
Console.WriteLine("myStruct.name = " + myStruct.name);// Abc
Console.WriteLine("Pass to method");
// 'myStruct' transmis à la méthode est une copie.
// (Pas l'objet d'origine).
passToMe(myClass, myStruct);
Console.WriteLine("myClass.name = " + myClass.name); // New Name
Console.WriteLine("myStruct.name = " + myStruct.name);// Abc
Console.Read();
}
}
}
Exécution l'exemple:
Before pass to method
myClass.name = Abc
myStruct.name = Abc
Pass to method
myClass.name = New Name
myStruct.name = Abc
3. Constructor de Struct
Struct peut avoir des Constructor (Constructeurs), mais n'a pas de Destructor (Déstructeurs).
Ci- dessous mentionnés sont les remarques pour Constructor:
- Vous pouvez écrire un Constructor par défaut (Non paramètre) pour struct.
- Dans Constructor vous devez attribuer des valeurs pour tous les champs de struct qui n'ont pas de la valeur.
4. Les méthodes et les propriétés de Struct
Struct peut avoir des méthodes et des propriétés (Property), et parce que Struct n'hérite pas donc toutes ses méthodes et ses propriétés ne sont pas permises d'être abstrait (abstract).
Book.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharpStructureTutorial
{
struct Book
{
private string title;
private string author;
// Property
public string Title
{
get
{
return this.title;
}
set
{
this.title = value;
}
}
// Property
public string Author
{
get
{
return this.author;
}
}
// Constructor.
public Book(string title, string author)
{
this.title = title;
this.author = author;
}
// Method.
public string GetInfo()
{
return "Book Title: " + this.title + ", Author: " + this.author;
}
}
}
Tutoriels de programmation C#
- Héritage et polymorphisme en C#
- De quoi avez-vous besoin pour démarrer avec C#?
- Apprenez rapidement à développer en C# pour débutant
- Installer Visual Studio 2013 sur Windows
- Classe abstraite et interface dans C#
- Installer Visual Studio 2015 sur Windows
- Compression et décompression dans C#
- Tutoriel de programmation multithread C#
- Tutoriel C# Delegate et Event
- Installer AnkhSVN sur Windows
- Programmation C# pour l'équipe utilisant Visual Studio et SVN
- Installer .Net Framework
- Modificateur d'accès (Access Modifier) en C#
- Le Tutoriel de C# String et de StringBuilder
- Le Tutoriel de C# Properties
- Le Tutoriel de C# Enum
- Le Tutoriel de C# Structure
- Le Tutoriel de C# Generics
- Tutoriel sur la gestion des exceptions C#
- Le Tutoriel de C# Date Time
- Manipulation de fichiers et de répertoires dans C#
- Tutoriel C# Stream - flux binaire en C#
- Le Tutoriel d'expressions régulières C#
- Se Connecter à la base de données SQL Server dans C#
- Travailler avec la base de données SQL Server dans C#
- Connectez-vous à la base de données MySQL dans C#
- Travailler avec la base de données MySQL dans C#
- Connectez-vous à la base de données Oracle dans CSharp sans Oracle Client
- Utilisation d'une base de données Oracle en utilisant C#
Show More