.NET Artigos C# Programação

C#11 e suas principais mudanças

A nova versão C# 11, foi lançada em novembro de 2022. Ela inclui uma série de mudanças na sintaxe da linguagem, entre elas:

  • Parâmetros opcionais: agora é possível declarar parâmetros opcionais para métodos, o que permite que os usuários desses métodos especifiquem ou não valores para esses parâmetros.
public void metodo(int? numero) {
  // Se o numero for omitido, ele será 0
  if (numero == null) {
    numero = 0;
  }

  // Faça algo com o numero
  // ...
}
  • Propriedades de extensão: agora é possível criar propriedades de extensão para tipos existentes, o que permite adicionar novos membros a esses tipos sem ter que modificá-los diretamente.
public static class DecimalExtensions {
  public static decimal MultiplicarPorDois(this decimal numero) {
    return numero * 2;
  }
}

// Usando a propriedade de extensão
decimal numero = 10;
numero = numero.MultiplicarPorDois();
// numero agora é 20
  • Recordes: os registros são um novo tipo de estrutura que é projetado para ser fácil de usar e eficiente. Eles são imutáveis por padrão e podem ter propriedades, métodos e eventos.
public record Pessoa(string nome, int idade);

// Criando um novo registro
Pessoa pessoa = new Pessoa("João", 20);
// Imprimindo o nome e a idade da pessoa
Console.WriteLine(pessoa.nome); // João
Console.WriteLine(pessoa.idade); // 20
  • Chaves de formato: as chaves de formato são um novo recurso que permite formatar texto de forma mais flexível. Eles podem ser usados para formatar números, datas, horas e outras informações.
// Formatando um número
string numeroFormatado = "{0:000000}", numero = 123456789;
Console.WriteLine(numeroFormatado, numero); // 123456789

// Formatando uma data
string dataFormatada = "{0:dd/MM/yyyy}", data = new DateTime(2023, 3, 8);
Console.WriteLine(dataFormatada, data); // 08/03/2023
  • Novas construções de linguagem: C# 11 também inclui uma série de novas construções de linguagem, como o operador ?. e o operador ?. + ??. Essas construções podem ser usadas para melhorar a legibilidade e a eficiência do código.
// Usando o operador `?.`
string nome = pessoa?.nome; // Se a pessoa for nula, nome será nulo

// Usando o operador `?. + ??`
int idade = pessoa?.idade ?? 0; // Se a pessoa for nula, idade será 0

Essas são apenas algumas das principais mudanças na sintaxe do C# na nova versão.

Para obter mais informações, consulte a documentação do C# 11: https://docs.microsoft.com/en-us/dotnet/csharp/.

Lucas Dalcolmo

About Author

Sou desenvolvedor de software a mais de 13 anos com experiência nacioanl e internacional. Já produzi softwares para grandes empresas no Brasil e também bancos em Portugal. Possuo as certificações microsoft AZ-900, DP-900, AI-900 e AZ-204 (azure developer associate). Sou fundador da Dallm Games Studio (@dallmgamesstudio) e fui mentor em vários eventos de desenvolvimento de jogos. Também fui mentor do NASA SPACE JAM 2024 na área de desenvolvimento de software.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Receba as últimas notícias por email

    Cadastre-se, receba nossas novidades em primeira mão por email, antes de todo mundo.

    Codeinsider @2025. Todos os direitos reservados.

    Desenvolvido por House Comunicação