De C# 7.0 para C# 7.1 – O que mudou?
Danilo O. Pinheiro, dopme.io

Danilo O. Pinheiro, dopme.io @daniloopinheiro

About: Inicie em tecnologia por volta de 2017. Neste percurso, com experiencia em desenvolvimento web em .NET e outras tecnologias. Com algumas certificações, e fundador da DevsFree.

Location:
Brasil
Joined:
Jul 22, 2020

De C# 7.0 para C# 7.1 – O que mudou?

Publish Date: Jul 2
0 0

O C# 7 introduziu uma das maiores atualizações da linguagem até então, com foco em desempenho, clareza de código e suporte moderno a tuplas, padrões e retornos por referência.

Pouco tempo depois, o C# 7.1 foi lançado como uma atualização incrivelmente leve, mas importante para melhorar interoperabilidade e legibilidade — especialmente com código assíncrono.


📦 C# 7.0 – O que trouxe de novo?

O C# 7.0 trouxe grandes adições à linguagem. Os principais recursos foram:

✅ Destaques do C# 7.0

Recurso Descrição
Tuplas com nomes var pessoa = (nome: "Ana", idade: 30);
out variables Declaração inline em métodos com out
Pattern Matching is, switch com padrões
Deconstruction (var nome, var idade) = pessoa;
ref return e ref locals Retorno e armazenamento por referência
local functions Funções locais dentro de métodos
throw expressions Exceções inline
Melhorias em default, literal e digit separators 1_000_000, default(int) etc

🧪 Exemplos de C# 7.0

Tuplas nomeadas

(string nome, int idade) pessoa = ("Ana", 30);
Console.WriteLine($"{pessoa.nome} tem {pessoa.idade} anos.");
Enter fullscreen mode Exit fullscreen mode

Pattern Matching

if (obj is Pessoa p && p.Idade > 18)
    Console.WriteLine($"{p.Nome} é maior de idade.");
Enter fullscreen mode Exit fullscreen mode

Funções locais

void MostrarMensagem(string nome)
{
    string GerarSaudacao() => $"Olá, {nome}";
    Console.WriteLine(GerarSaudacao());
}
Enter fullscreen mode Exit fullscreen mode

⚙️ C# 7.1 – O que mudou?

O C# 7.1 foi uma atualização incremental, lançado com o .NET Core 2.0, focado em pequenos aprimoramentos, especialmente para trabalhar com async e retorno Main(), além de sintaxes mais elegantes.


✅ Novidades do C# 7.1

Recurso Descrição
async Main Permite Main assíncrono com Task ou Task<int>
Inferência com default literal default sem tipo explícito (defaultdefault(string))
Pattern matching com genéricos Agora funciona corretamente com tipos genéricos
Expressões inferred tuple names Nomes inferidos em tuplas (var pessoa = (nome, idade);)

🧪 Exemplos de C# 7.1

async Main

static async Task Main(string[] args)
{
    await Task.Delay(1000);
    Console.WriteLine("Olá, mundo assíncrono!");
}
Enter fullscreen mode Exit fullscreen mode

🚀 Antes do C# 7.1, Main não podia ser async.


default literal

string nome = default; // Em vez de default(string)
Enter fullscreen mode Exit fullscreen mode

Tuple com nomes inferidos

var nome = "Ana";
var idade = 30;

var pessoa = (nome, idade); // nome e idade viram nomes da tupla
Console.WriteLine($"{pessoa.nome} tem {pessoa.idade} anos.");
Enter fullscreen mode Exit fullscreen mode

Pattern Matching com genéricos

bool IsNulo<T>(T obj) => obj is null;
Enter fullscreen mode Exit fullscreen mode

⚠️ Como habilitar o C# 7.1?

Por padrão, projetos antigos usam a versão do compilador baseada no target framework. Para usar o C# 7.1:

🔧 csproj

<LangVersion>7.1</LangVersion>
Enter fullscreen mode Exit fullscreen mode

Ou, para sempre pegar a versão mais recente:

<LangVersion>latest</LangVersion>
Enter fullscreen mode Exit fullscreen mode

🧠 Comparativo final

Recurso C# 7.0 C# 7.1
Tuplas com nome
Deconstruction
Pattern Matching básico
Pattern Matching com genéricos
async Main
default literal inferido
Nomes inferidos em tuplas

🎓 Conclusão

  • O C# 7.0 foi uma versão robusta que trouxe recursos essenciais como tuplas modernas, pattern matching e funções locais.
  • O C# 7.1 focou em melhorias sutis, especialmente para quem usa programação assíncrona e tuplas com mais legibilidade.

✅ Se você está em um projeto com C# 7.0 e deseja pequenas melhorias na linguagem, vale a pena migrar para o 7.1 com segurança.


🤝 Conecte-se Comigo

Se você está modernizando código legado ou quer aprender a fundo C# e .NET, bora conversar:

Comments 0 total

    Add comment