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

Les pointeurs de fonction (C# 9.0)

Cet article fait partie d’une série d’articles sur les apports fonctionnels de C# 9.0. Le but de la fonctionnalité des pointeurs de fonction en C# est de proposer une syntaxe pour facilement manipuler ce type de pointeurs. La manipulation de pointeurs est possible en C# toutefois avant C# 9, manipuler des pointeurs de fonction n’était…

Continuer à lire

Les records (C# 9, C# 10)

Cet article fait partie d’une série d’articles sur les apports fonctionnels de C# 9.0 et C# 10.0. C# 9 introduit un nouveau type d’objets dont le but est de fournir une syntaxe simple pour déclarer des objets de type référence contenant des propriétés. Ces objets peuvent être définis en utilisant le mot-clé record. C# 10…

Continuer à lire

Fonctionnalités C# 8.0

Le but de cet article est de résumer et d’expliquer les fonctionnalités de C# 8.0. Dans un premier temps, on explicitera le contexte de C# 8 par rapport aux différents frameworks qui permettent de l’utiliser. Ensuite, on rentrera dans le détail des fonctionnalités. Les fonctionnalités les plus rapides à expliquer se trouvent dans cet article….

Continuer à lire

Unmanaged constructed types (C# 8.0)

Cet article fait partie d’une série d’articles sur les apports fonctionnels de C# 8.0. Sommaire Avant de commencer… Generic type vs constructed type Type non managé Structure managée vs structure non managée Les tableaux Constructed types non managés Contrainte unmanaged C# 8 Fonctionnalités C# 8.0 Précisions sur les versions de C# Fonction locale statique Utilisation…

Continuer à lire