Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
C# 15 inclut les nouvelles fonctionnalités suivantes. Vous pouvez essayer ces fonctionnalités à l’aide de la dernière version de Visual Studio 2026 ou du Kit de développement logiciel (SDK) .NET 11 preview :
C# 15 est la dernière version C#. C# 15 est pris en charge sur .NET 11. Pour plus d’informations, consultez Contrôle de version du langage C#.
Vous pouvez télécharger le dernier SDK .NET 11 en préversion à partir de la page de téléchargements .NET. Vous pouvez également télécharger Visual Studio 2026 Insider, qui inclut le .NET 11 SDK Preview.
De nouvelles fonctionnalités sont ajoutées à la page « Nouveautés en C# » lorsqu’elles sont disponibles dans les versions en préversion publique. La section ensemble de travail de la page d’état des fonctionnalités de Roslyn suit le moment où les nouvelles fonctionnalités sont fusionnées dans la branche principale.
Vous trouverez toutes les modifications incompatibles introduites en C# 15 dans notre article sur les changements incompatibles.
Note
Nous sommes intéressés par vos commentaires sur ces fonctionnalités. Si vous rencontrez des problèmes avec l’une de ces nouvelles fonctionnalités, créez un nouveau problème dans le référentiel dotnet/roslyn.
Arguments d'expression de collection
Vous pouvez passer des arguments au constructeur ou à la méthode de fabrique de la collection sous-jacente à l’aide d’un with(...) élément comme premier élément d’une expression de collection. Cette fonctionnalité vous permet de spécifier la capacité, les comparateurs ou d’autres paramètres de constructeur directement dans la syntaxe d’expression de collection.
L’exemple suivant montre comment passer un argument de capacité à un List<T> constructeur et un comparateur à un HashSet<T>:
string[] values = ["one", "two", "three"];
// Pass capacity argument to List<T> constructor
List<string> names = [with(capacity: values.Length * 2), .. values];
// Pass comparer argument to HashSet<T> constructor
HashSet<string> set = [with(StringComparer.OrdinalIgnoreCase), "Hello", "HELLO", "hello"];
// set contains only one element because all strings are equal with OrdinalIgnoreCase
Vous pouvez en savoir plus sur les arguments d’expression de collection dans l’article de référence de langage sur les expressions de collection ou la spécification de fonctionnalité. Pour plus d’informations sur l’utilisation d’arguments d’expression de collection dans les initialiseurs de collection, consultez Object et Collection Initializers.