C# 9 – Renforcement de la covariance

Avec le langage C#, lorsqu’une classe hérite d’une classe, il est possible de redéfinir une méthode ou une propriété dans la classe dérivée, si elle est déclarée abstraite ou virtuelle dans la classe de base. Cependant, jusqu’à la version 8, il n’est pas possible de modifier sa signature. La version 9 du langage C# renforce
Read More »

C# – Les flux asynchrones

A partir de la version 8 du langage C#, il est possible de créer des flux asynchrones, autrement dit des méthodes qui retournent un ensemble de données / d’objets de manière asynchrone pouvant être consommées de manière asynchrone. Ces méthodes possèdent les caractéristiques suivantes : Elles sont déclarées avec le mot clé async Elles retournent
Read More »

C# – Le design pattern Singleton

Présentation Le design pattern Singleton, modèle de conception de construction, permet à une classe d’exposer aux autres classes du logiciel, une seule instance d’elle-même. Diagramme de classes Voici un exemple d’implémentation du modèle de conception de ce modèle de conception : La classe Singleton souhaite exposer qu’une seule instance d’elle-même. Elle déclare alors une propriété
Read More »

C# – Design pattern – Builder

Présentation Le design pattern Builder permet la création d’objets complexes via un processus constitué d’une série d’étapes s’exécutant de manière séquentielle. Diagramme de classes Voici un exemple d’implémentation du modèle de conception de ce modèle de conception : La classe Client a besoin d’obtenir une instance de la classe Product, opération complexe à réaliser. Cet
Read More »

C# 9 – Les expressions typées cible

Soit la classe Personne suivante : public class Personne { public string Nom { get; set; } public string Prenom { get; set; } public Personne() : this(string.Empty, string.Empty) { } public Personne(string aNom, string aPrenom) { this.Nom = aNom; this.Prenom = aPrenom; } } Pour créer des instances de cette classe en C# 9,
Read More »

C# 9 – Les instructions de niveau supérieur

Dans les applications développées avec le langage C#, par convention, la classe Program contient la méthode Main qui constitue le point d’entrée de l’application. Voici un exemple du fichier Program.cs : using System; namespace ConsoleApp3 { class Program { static void Main(string[] args) { try { Person person = new Person("James", "RAVAILLE"); Console.WriteLine(person.Identity); } catch(Exception
Read More »

C# – Les design patterns

Un design pattern est un « modèle de conception » que l’on nomme aussi « patron de conception ». Ils constituent des solutions qualifiées de « classiques » ou encore « éprouvées » à des problèmes connus en conception orienté objet. Une version aboutie des design patterns que nous utilisons aujourd’hui lors de la conception
Read More »

C# – Optimiser les performances des opérations ensemblistes avec la classe HashSet

En tant que concepteur / développeur d’applications de gestion de données avec la plateforme Microsoft .Net et le langage C#, je cherche toujours à optimiser les performances des algorithmes que j’implémente. Dans cet article, je vais vous présenter la classe System.Collections.Generic.HashSet et les performances qu’elle propose par rapport à la classe System.Collections.Generic.List lors d’opérations ensemblistes
Read More »