Поделиться через


Новые возможности C# 15

C# 15 включает следующие новые функции. Эти функции можно попробовать с помощью последней версии Visual Studio 2026 или пакета SDK для предварительной версии .NET 11:

C# 15 — это последний выпуск C#. C# 15 поддерживается в .NET 11. Дополнительные сведения см. в разделе версии языка C# .

Вы можете скачать последний пакет SDK предварительной версии .NET 11 на странице загрузки .NET. Вы также можете скачать инсайдерскую версию Visual Studio 2026, включая предварительную версию SDK для .NET 11.

Новые функции добавляются на страницу "Новые возможности В C#", когда они доступны в общедоступных предварительных версиях. Раздел рабочего набора на странице статуса функций Roslyn отслеживает, когда предстоящие функции объединяются в основную ветвь.

Критические изменения, внесенные в C# 15, можно найти в нашей статье о критических изменениях.

Замечание

Мы заинтересованы в ваших отзывах об этих функциях. Если вы найдете проблемы с любым из этих новых функций, создайте новую проблему в репозитории dotnet/roslyn.

Аргументы выражения коллекции

Аргументы можно передать в конструктор подлежащей коллекции или фабричный метод, используя элемент with(...) в качестве первого элемента в выражении коллекции. Эта возможность позволяет вам указывать емкость, компараторы или другие параметры конструктора непосредственно в синтаксисе выражения коллекции.

В следующем примере показано, как передать аргумент емкости конструктору List<T> и компаратору 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

Дополнительные сведения о аргументах выражения коллекции см. в статье справочника по языку о выражениях коллекции или спецификации компонентов. Сведения об использовании аргументов выражения коллекции в инициализаторах коллекции см. в разделе "Инициализаторы объектов и коллекций".