Compartilhar via


Novidades no C# 15

O C# 15 inclui os novos recursos a seguir. Você pode experimentar esses recursos usando a versão mais recente do Visual Studio 2026 ou o SDK de versão prévia do .NET 11:

O C# 15 é a versão mais recente do C#. O C# 15 tem suporte no .NET 11. Para obter mais informações, confira Controle de versão da linguagem C#.

Você pode baixar o SDK de versão prévia mais recente do .NET 11 na página de downloads do .NET. Você também pode baixar a Visual Studio 2026 Insider Preview, que inclui o SDK de versão prévia do .NET 11.

Novos recursos são adicionados à página "Novidades no C#" quando estão disponíveis em versões de visualização pública. A seção conjunto de trabalho da página de status de funcionalidades do Roslyn monitora o momento em que os recursos futuros são mesclados na ramificação principal.

Você pode encontrar as alterações de ruptura introduzidas no C# 15 em nosso artigo sobre alterações de ruptura.

Observação

Estamos interessados em seus comentários sobre esses recursos. Se você encontrar problemas com qualquer um desses novos recursos, crie um problema no repositório dotnet/roslyn.

Argumentos de expressão de coleção

Você pode passar argumentos para o construtor ou o método de fábrica da coleção subjacente usando um with(...) elemento como o primeiro elemento em uma expressão de coleção. Esse recurso permite que você especifique capacidade, comparadores ou outros parâmetros de construtor diretamente dentro da sintaxe da expressão de coleção.

O exemplo a seguir mostra como passar um argumento de capacidade para um List<T> construtor e um comparador para 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

Você pode saber mais sobre argumentos de expressão de coleção no artigo de referência de linguagem sobre expressões de coleção ou a especificação do recurso. Para obter informações sobre como usar argumentos de expressão de coleção em inicializadores de coleção, consulte Inicializadores de Objeto e Coleção.