Udostępnij za pośrednictwem


Co nowego w języku C# 15

Język C# 15 zawiera następujące nowe funkcje. Możesz wypróbować te funkcje przy użyciu najnowszej wersji programu Visual Studio 2026 lub zestawu SDK platformy .NET 11 w wersji zapoznawczej:

C# 15 to najnowsza wersja języka C#. Język C# 15 jest obsługiwany na platformie .NET 11. Aby uzyskać więcej informacji, zobacz wersjonowanie języka C#.

Najnowszy zestaw SDK platformy .NET 11 w wersji zapoznawczej można pobrać ze strony pobierania platformy .NET. Możesz również pobrać wersję insider programu Visual Studio 2026, która zawiera wersję zapoznawczą zestawu SDK .NET 11.

Nowe funkcje są dodawane do strony "Co nowego w języku C#", gdy są one dostępne w publicznej wersji zapoznawczej. Sekcja zestawu roboczego na stronie stanu funkcji roslyn śledzi, kiedy nadchodzące funkcje są scalane z gałęzią główną.

Wszelkie zmiany powodujące niezgodność wprowadzone w języku C# 15 można znaleźć w naszym artykule dotyczącym zmian powodujących niezgodność.

Uwaga / Notatka

Interesuje nas Twoja opinia na temat tych funkcji. Jeśli znajdziesz problemy z dowolną z tych nowych funkcji, utwórz nowe zgłoszenie w repozytorium dotnet/roslyn.

Argumenty wyrażeń kolekcji

Argumenty można przekazać do konstruktora lub metody fabrycznej bazowej kolekcji przy użyciu with(...) elementu jako pierwszego elementu w wyrażeniu kolekcji. Ta funkcja umożliwia określanie pojemności, komparatorów lub innych parametrów konstruktora bezpośrednio w składni wyrażenia kolekcji.

W poniższym przykładzie pokazano, jak przekazać argument pojemności do konstruktora List<T> i komparator jako argument do 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

Więcej informacji na temat argumentów wyrażeń kolekcji można znaleźć w artykule dotyczącym wyrażeń kolekcji lub specyfikacji funkcji. Aby uzyskać informacje na temat używania argumentów wyrażeń kolekcji w inicjatorach kolekcji, zobacz Inicjatory obiektów i kolekcji.