C# em 2025: O que há de novo na prática?
O mundo .NET não para. Em 2025, a linguagem C# continua a se desenvolver ativamente, oferecendo aos desenvolvedores ferramentas para escrever código mais conciso, seguro e eficiente. Cada atualização da plataforma torna o desenvolvimento diário mais conveniente, e as novas construções da linguagem permitem eliminar o código repetitivo.
Neste artigo, vamos analisar três principais inovações do C# em 2025 que você pode começar a usar agora mesmo. Todos os exemplos de código são retirados da prática real e adaptados para o portal educacional pythonlib.ru.
1. Construtores Primários (Primary Constructors)
Uma das novidades mais esperadas são os construtores primários para classes e estruturas. Anteriormente, essa funcionalidade estava disponível apenas para registros (record). Agora você pode declarar os parâmetros do construtor diretamente no cabeçalho da classe, o que reduz significativamente a quantidade de código.
Vamos considerar um exemplo clássico de criação de um modelo de usuário:
Como era (C# 12 e anteriores):
public class User{ public string Name { get; } public int Age { get; }
public User(string name, int age) { Name = name; Age = age; }}Como ficou (C# 2025):
public class User(string name, int age){ public string Name { get; } = name; public int Age { get; } = age; public string Greeting => $"Olá, {Name}! Você tem {Age} anos.";}Como você pode ver, o código ficou mais limpo. Os parâmetros name e age agora estão disponíveis em todo o corpo da classe. Isso é especialmente útil ao trabalhar com Dependency Injection (DI) no ASP.NET Core:
public class WeatherService(HttpClient httpClient, ILogger<WeatherService> logger){ public async Task<string> GetWeatherAsync(string city) { logger.LogInformation("Solicitando clima para a cidade {City}", city); var response = await httpClient.GetStringAsync($"https://api.weather.com/{city}"); return response; }}Os construtores primários permitem eliminar vários campos e atribuições explícitas, tornando o código mais declarativo.
2. Coleções do Novo Padrão (Collection Expressions)
Em 2025, o C# recebeu uma poderosa atualização para trabalhar com coleções. Agora você pode inicializar listas, arrays e até mesmo Span<T> com uma sintaxe unificada — collection expressions.
A nova sintaxe usa colchetes [] em vez de chaves {} ou new List<T>():
Exemplo de inicialização de várias coleções:
// Arrayint[] numbers = [1, 2, 3, 4, 5];
// ListaList<string> names = ["Ana", "Boris", "Victor"];
// Span (funciona sem alocações)Span<char> letters = ['A', 'B', 'C'];A principal novidade é o operador de espalhamento (spread) ... Ele permite combinar coleções sem chamar .Concat() ou .AddRange():
int[] first = [1, 2, 3];int[] second = [4, 5, 6];
// Combinação de arraysint[] combined = [..first, ..second]; // [1, 2, 3, 4, 5, 6]
// Adicionando elementos no início e no finalint[] extended = [0, ..combined, 7]; // [0, 1, 2, 3, 4, 5, 6, 7]Essa sintaxe funciona não apenas com arrays, mas também com List<T>, HashSet<T> e até mesmo com coleções personalizadas que implementam ICollection<T>. Para desenvolvedores acostumados com Python, essa abordagem parecerá muito familiar e intuitiva.
3. Interpolação de Strings Aprimorada e Tratamento de Exceções
A interpolação de strings no C# 2025 recebeu várias melhorias importantes que a tornam ainda mais flexível.
3.1. Interpolação em operadores nameof
Agora você pode