Gestionnaire d’interpolation de chaînes de caractères (C# 10)

Cet article fait partie d’une série d’articles sur les apports fonctionnels de C# 10.0. Sommaire Interpolation de chaîne de caractères Options d’alignement et de formatage Echappement des caractères spéciaux Verbatim string Interpolation de chaînes constantes Gestionnaire d’interpolation de chaînes de caractères Attribut InterpolatedStringHandler Attribut InterpolatedStringHandlerArgument Cette fonctionnalité permet d’apporter une solution pour faciliter et personnaliser…

Continuer à lire

Amélioration des informations de diagnostic sur une méthode (C# 10)

Cet article fait partie d’une série d’articles sur les apports fonctionnels de C# 10.0. Il existe des attributs permettant d’indiquer des informations sur l’appelant d’une méthode. Avant C# 10, il existait 3 attributs: CallerFilePathAttribute: permettant d’indiquer le chemin du fichier de code source à la compilation contenant l’appelant. CallerLineNumberAttribute: indiquant le numéro de ligne du…

Continuer à lire

Amélioration des structures (C# 10, C# 11)

Le but de cet article est d’indiquer les améliorations faites sur les objets structures (i.e. struct) en C# 10 et C# 11. Sommaire Rappels concernant les objets de type valeur Caractéristiques des objets de type valeur Caractéristiques des objets struct Code MSIL Avant C# 10.0 readonly struct ref struct readonly ref struct ref struct et…

Continuer à lire

Compatibilité entre le framework .NET historique et .NET

Actuellement, 2 implémentations de .NET peuvent être utilisées: l’implémentation historique du Framework .NET toujours supportée mais dont la version s’arrête à la version majeure 4.8 (actuellement 4.8.1). l’implémentation actuelle .NET anciennement appelée .NET Core jusqu’à la version 3.1 (cf. dotnet.microsoft.com/en-us/download/dotnet). Le framework .NET existant depuis les années 2000, beaucoup d’applications existent toujours en ayant comme…

Continuer à lire

Les fonctionnalités C# 9.0

Le but de cet article est de résumer et d’expliquer les fonctionnalités de C# 9.0. Dans un premier temps, on explicitera le contexte de C# 9.0 par rapport aux autres composants (frameworks, IDE, compilateur etc…) qui permettent de l’utiliser. Ensuite, on rentrera dans le détail des fonctionnalités. Les fonctionnalités les plus rapides à expliquer se…

Continuer à lire

Attribut SkipLocalsInit (C# 9.0)

Cet article fait partie d’une série d’articles sur les apports fonctionnels de C# 9.0. Sommaire .local init Conséquences de l’utilisation de SkipLocalsInitAttribute Code MSIL Conséquence dans l’exécution Comparaison des performances Pour aller plus loin… Manipulation de pointeur Appels Platform/Invoke Utilisation de structure C# 9.0 Cette fonctionnalité est une optimisation dont le but est d’éviter au…

Continuer à lire

Covariance pour le retour de fonction (C# 9.0)

Cet article fait partie d’une série d’articles sur les apports fonctionnels de C# 9.0. Sommaire Variance Covariance pour le retour de fonction Conséquences de la covariance dans le code MSIL newslot PreserveBaseOverridesAttribute Pour conclure… C# 9.0 Avant de rentrer dans le détail de la fonctionnalité “covariant return”, on va expliquer ce que signifie le terme…

Continuer à lire

Native ints (C# 9.0)

Cet article fait partie d’une série d’articles sur les apports fonctionnels de C# 9.0. Cette fonctionnalité consiste à permettre d’utiliser les types “native int” et “native unsigned int” dans du code C#. Avant cette fonctionnalité, ces types n’existaient que dans le code MSIL, ils étaient générés quand on utilisait les types System.IntPtr et System.UIntPtr. L’inconvénient…

Continuer à lire