Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
C# 15 include le nuove funzionalità seguenti. È possibile provare queste funzionalità usando la versione più recente di Visual Studio 2026 o .NET 11 Preview SDK:
C# 15 è la versione C# più recente. C# 15 è supportato in .NET 11. Per ulteriori informazioni, vedere versionamento del linguaggio C#.
È possibile scaricare la versione più recente di .NET 11 Preview SDK dalla pagina di download di .NET. È anche possibile scaricare Visual Studio 2026 Insider, che include .NET 11 Preview SDK.
Le nuove funzionalità vengono aggiunte alla pagina "Novità in C#" quando sono disponibili nelle versioni di anteprima pubblica. La sezione working set della pagina di stato della funzionalità roslyn tiene traccia quando le funzionalità future vengono unite nel ramo principale.
È possibile trovare eventuali modifiche di rilievo introdotte in C# 15 nell'articolo sulle modifiche di rilievo.
Annotazioni
Microsoft è interessato ai commenti e suggerimenti su queste funzionalità. Se trovi questioni con una di queste nuove funzionalità, crea un nuovo problema nel repository dotnet/roslyn.
Argomenti dell'espressione di raccolta
È possibile passare argomenti al costruttore o al metodo factory della raccolta sottostante usando un with(...) elemento come primo elemento in un'espressione di raccolta. Questa funzionalità consente di specificare capacità, comparer o altri parametri del costruttore direttamente all'interno della sintassi dell'espressione di raccolta.
Nell'esempio seguente viene illustrato come passare un argomento di capacità a un List<T> costruttore e un comparatore a un HashSet<T> oggetto:
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
Per altre informazioni sugli argomenti delle espressioni di raccolta, vedere l'articolo di riferimento sul linguaggio sulle espressioni di raccolta o sulla specifica delle funzionalità. Per informazioni sull'uso degli argomenti dell'espressione di raccolta negli inizializzatori di raccolta, vedere Inizializzatori di oggetti e raccolte.