C# Version 12
C# 12
C# 12 intègre les nouvelles fonctionnalités suivantes. Vous pouvez essayer ces fonctionnalités à l’aide de la dernière version de Visual Studio 2022 ou du Kit de développement logiciel (SDK) .NET 8.Constructeurs principaux
Vous pouvez désormais créer des constructeurs principaux dans n’importe quel class et struct. Les constructeurs principaux ne sont plus limités aux types record. Les paramètres de constructeur principal se trouvent dans l’étendue de l’ensemble du corps de la classe. Pour garantir l’affectation définitive de tous les paramètres de constructeur principal, tous les constructeurs explicitement déclarés doivent appeler le constructeur principal à l’aide de la syntaxe this(). L’ajout d’un constructeur principal à class empêche le compilateur de déclarer un constructeur sans paramètre implicite. Dans struct, le constructeur sans paramètre implicite initialise tous les champs, notamment les paramètres de constructeur principal selon le modèle 0 bit.
Le compilateur génère des propriétés publiques pour les paramètres de constructeur principal uniquement dans les types record, qu’il s’agisse des types record class ou record struct. Les classes et les structs qui ne sont pas des enregistrements ne souhaitent pas toujours ce comportement pour les paramètres de constructeur principal.
introduites dans Visual Studio 2022 version 17.7 préversion 5.
Les expressions de collection introduisent une nouvelle syntaxe concise pour créer des valeurs de collection courantes. L’inlining d’autres collections dans ces valeurs est possible à l’aide d’un opérateur de propagation ...
Plusieurs types de collection peuvent être créés sans nécessiter de prise en charge BCL externe. Ces types sont les suivants :
Les expressions de collection introduisent une nouvelle syntaxe concise pour créer des valeurs de collection courantes. L’inlining d’autres collections dans ces valeurs est possible à l’aide d’un opérateur de propagation ...
Plusieurs types de collection peuvent être créés sans nécessiter de prise en charge BCL externe. Ces types sont les suivants :
Les types de tableaux, tels que int[].
Voir System.Span<T> et System.ReadOnlySpan<T>.
Types qui prennent en charge les initialiseurs de collection, tels que System.Collections.Generic.List<T>.
Voir System.Span<T> et System.ReadOnlySpan<T>.
Types qui prennent en charge les initialiseurs de collection, tels que System.Collections.Generic.List<T>.
// Create an array:
int[] a = [1, 2, 3, 4, 5, 6, 7, 8];
// Create a list:
List<string> b = ["one", "two", "three"];
// Create a span
Span<char> c = ['a', 'b', 'c', 'd', 'e', 'f', 'h', 'i'];
// Create a jagged 2D array:
int[][] twoD = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
// Create a jagged 2D array from variables:
int[] row0 = [1, 2, 3];
int[] row1 = [4, 5, 6];
int[] row2 = [7, 8, 9];
int[][] twoDFromVariables = [row0, row1, row2];
int[] row0 = [1, 2, 3];
int[] row1 = [4, 5, 6];
int[] row2 = [7, 8, 9];
int[] single = [.. row0, .. row1, .. row2];
foreach (var element in single)
{
Console.Write($"{element}, ");
}
// output:
// 1, 2, 3, 4, 5, 6, 7, 8, 9,
Tableaux inline
introduits dans Visual Studio 2022 version 17.7 préversion 3.
Paramètres facultatifs dans les expressions lambda
Paramètres ref readonly
Alias de n’importe quel type
Attribut expérimental
Intercepteurs - Fonctionnalité expérimentale
Paramètres facultatifs dans les expressions lambda
Paramètres ref readonly
Alias de n’importe quel type
Attribut expérimental
Intercepteurs - Fonctionnalité expérimentale
C# 12 est pris en charge sur .NET 8.
Commentaires
Enregistrer un commentaire