Étiquette : C#

Framework .NET – C# – Retours d’expérience pour de meilleures performances

J’aimerais faire des retours d’expérience concernant certaines techniques de développement avec le Framework .NET (Core) et le langage C#. Certaines d’entre elles peuvent être très utiles dans de nombreuses situations, mais trop les utiliser peuvent pénaliser les performances dans certains contextes : Les finaliseurs Le tas (espace de stockage mémoire des variables de type référence) est
Read More »

Langage C# – Méthode d’extension ForEach ou instruction foreach pour parcourir un tableau ?

En parcourant du code sur un projet, j’ai observé que le développeur avait écrit les lignes de code suivantes : array.ToList().ForEach(item => { // Traitement ... }); où array est un tableau d’environ 50000 chaînes de caractères. Cette syntaxe consiste à « transformer » le tableau en collection, afin de pouvoir utiliser la méthode extension ForEach proposée par
Read More »

C# – Initialisation tardive des propriétés (lazy)

Présentation Afin d’améliorer les performances et la gestion de la mémoire lors de la création d’objets, il est parfois nécessaire d’initialiser certaines de leurs propriétés de manière tardive, c’est-à-dire au moment où nous souhaitons les utiliser. Par exemple, lors de l’instanciation de la classe Report, la collection d’objets de type Statistic est coûteuse en mémoire
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# – 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 »

C# 8 – Utiliser le mot clé « using » pour déclarer des variables locales

En C#, le mot clé using est utilisé pour importer des espaces de nom. Il est aussi utilisé pour délimiter l’utilisation d’un objet dans un algorithme avec une libération anticipée de la mémoire, à condition que la classe instanciée pour créer cet objet implémente l’interface IDisposable. Voici un exemple : [cc lang= »c# »] using (StreamReader streamReader
Read More »