Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
C# 15 inclui as seguintes novas funcionalidades. Pode experimentar estas funcionalidades usando a versão mais recente do Visual Studio 2026 ou o SDK de pré-visualização do .NET 11:
C# 15 é o lançamento mais recente em C#. C# 15 é suportado em .NET 11. Para obter mais informações, consulte versão de linguagem C#.
Pode descarregar o mais recente SDK de pré-visualização do .NET 11 na página de downloads do .NET. Pode descarregar o Visual Studio 2026 Insiders, que inclui a SDK de prévia do .NET 11.
Novos recursos são adicionados à página "Novidades em C#" quando estão disponíveis em versões de visualização pública. A seção do conjunto de trabalho da página de status das funcionalidades do Roslyn rastreia quando as próximas funcionalidades são mescladas na branch principal.
Pode encontrar quaisquer alterações significativas introduzidas em C# 15 no nosso artigo sobre alterações disruptivas.
Observação
Estamos interessados nos seus comentários sobre estas funcionalidades. Se você encontrar problemas com qualquer um desses novos recursos, crie um novo problema no repositório dotnet/roslyn.
Argumentos de expressão de coleções
Pode passar argumentos ao construtor ou método de fábrica da coleção subjacente usando um with(...) elemento como primeiro elemento numa expressão de coleção. Esta funcionalidade permite-lhe especificar capacidade, comparadores ou outros parâmetros do construtor diretamente dentro da sintaxe da expressão da coleção.
O exemplo seguinte mostra como passar um argumento de capacidade a um List<T> construtor e um comparador a um 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
Pode aprender mais sobre argumentos de expressão de coleções no artigo de referência de linguagem sobre expressões de coleções ou na especificação de características. Para informações sobre o uso de argumentos de expressões de coleção em inicializadores de coleções, veja Inicializadores de Objetos e Coleções.