C# - Histórico dos recursos de cada versão


 Hoje vou apresentar um histórico dos recursos apresentados em cada versão disponibilizada da linguagem C# até a versão do C# 10.0.

O C# é uma linguagem de programação orientada a objetos projetada por Anders Hejlsberg e desenvolvida pela Microsoft no ano de 2000. Já se passaram mais de 20 anos desde seu início e a C# não para de evoluir.

Atualmente a linguagem C# esta na versão 10.0 e a seguir temos os principais recursos apresentados em cada versão.

C# 1.0

A Microsoft lançou a primeira versão do C# com o Visual Studio 2002. O uso do Código Gerenciado foi introduzido com esta versão. A C# 1.0 foi a primeira linguagem que o desenvolvedor adotou para construir aplicativos .NET.

Os principais recursos do C# 1.0 incluem:

  1. Classes
  2. Estruturas
  3. Interfaces
  4. Eventos
  5. Propriedades
  6. Representantes
  7. Operadores e expressões
  8. Instruções
  9. Atributos

C# 2.0

A Microsoft lançou a segunda versão da linguagem C# com o Visual Studio 2005. A C# 2.0 introduziu alguns novos recursos nesta edição que ajudaram os desenvolvedores a codificar seus aplicativos de uma forma mais genérica.

  1. Genéricos
  2. Tipos parciais
  3. Métodos anônimos
  4. Tipos de valor anuláveis
  5. Iterators
  6. Covariância e contravariância

C# 3.0

O Visual Studio 2008 veio com o C# versão 3.0 (o pacote completo de recursos de linguagem veio, na verdade, com o C# versão 3.5) em 2007 e apresentou vários recursos novos. Foi a linguagem que mudou a vida dos desenvolvedores da plataforma Microsoft para construir seus aplicativos. Até agora, muitos desenvolvedores ainda estão usando esta versão para construir seus aplicativos. Os novos recursos que vieram com o C # 3.0 foram:

  1. Propriedades implementadas automaticamente
  2. Tipos anônimos
  3. Expressões de consulta
  4. Expressões lambda
  5. Árvores de expressão
  6. Métodos de extensão
  7. Variáveis locais de tipo implícito
  8. Métodos parciais
  9. Inicializadores de objeto e coleção

C# 4.0

Embora o C# 4.0 tenha sido lançado com Visual Studio 2010 com o .NET Framework 4, não são muitos os desenvolvedores que usam esses  novos recursos. O recurso principal foi a introdução da palavra-chave dynamic. A palavra-chave dynamic introduziu na versão 4.0 do C# a capacidade de substituir o compilador na tipagem em tempo de compilação.

Aqui está uma lista dos novos recursos do C # que vieram com esta versão:

  1. Associação dinâmica
  2. Argumentos opcionais/nomeados
  3. Genérico covariante e contravariante
  4. Tipos de interoperabilidade inseridos

C# 5.0

O Visual Studio 2012 veio com o C# 5.0 e foi disponibilizado para o público no ano de 2012.  Os recursos async e await são as verdadeiras estrelas dessa versão. Quando esses recursos foram lançados em 2012, o C# virou o jogo novamente, implantando a assincronia na linguagem como uma participante da maior importância.

Nesta versão 5.0, existem dois recursos principais:

  1. Membros assíncronos
  2. Atributos de informações do chamador

C# 6.0

A versão C# 6.0 veio com o VS 2015 e apresentou muitos recursos que aumentam a produtividade dos desenvolvedores. Nesta versão, o C# eliminou o clichê de linguagem para tornar o código mais conciso e legível. Portanto, para os fãs de código simples e conciso, essa versão da linguagem foi um grande benefício.

Alguns dos recursos desta versão foram:

  1. Importações estáticas
  2. Filtros de exceção
  3. Inicializadores de propriedade automática
  4. Membros aptos para expressão
  5. Propagador nulo
  6. Interpolação de cadeia de caracteres
  7. operador nameof

Nesta versão foi lançado o Roslyn, o compilador como um serviço. Agora o compilado da linguagem C# é escrito em C#.

C# 7.0

A versão 7,0 do C# foi lançada com o Visual Studio 2017. Esta versão tem algumas coisas interessantes e evolutivas na mesma direção que o C# 6.0, mas sem o compilador como um serviço.

Principais recursos :

  1. Variáveis out
  2. Tuplas e desconstrução
  3. Correspondência de padrões
  4. Funções locais
  5. Membros aptos para expressão expandidos
  6. Locais e retornos de ref
  7. Descartes
  8. Literais binários e os separadores de dígito
  9. Expressões throw

Todas essas funcionalidades oferecem novos recursos interessantes para desenvolvedores e a oportunidade de escrever um código mais limpo do que nunca. Um ponto alto é a condensação da declaração de variáveis a serem usadas com a palavra-chave out e a permissão de vários valores retornados por meio de tupla

C# 7.1

A partir desta versão a Microsoft iniciou a liberação de versões pontuais. Os novos recursos de linguagem nesta versão são:

  1. Método Main assíncrono

  2. expressões literais padrão (default)

  3. Nomes de elementos de tupla inferidos

  4. Restrições em parâmetros de tipo genérico

Além disso o compilador trouxe duas opções : -refout e -refonly, que controlam a geração de assembly de referência.

C# 7.2

Nesta versão foram apresentados diversos pequenos recursos:

  1. Técnicas para escrever código eficiente seguro

  2. Argumentos nomeados que não estejam à direita

  3. Sublinhados à esquerda em literais numéricos

  4. private protected modificador de acesso

  5. Expressões condicionais ref

C# 7.3

Há dois temas principais  na versão C# 7.3. Um tema fornece recursos que permitem que o código seguro tenha o mesmo desempenho que o código não seguro. O segundo tema fornece melhorias incrementais aos recursos existentes. Além disso, novas opções do compilador foram adicionadas nesta versão.

  1. Você pode acessar campos fixos sem fixação.

  2. Você pode reatribuir ref variáveis locais.

  3. Você pode usar inicializadores em stackalloc matrizes.

  4. Você pode usar fixed instruções com qualquer tipo que dê suporte a um padrão.

  5. Você pode usar restrições genéricas adicionais.

As novas opções do compilador são:

C# 8.0

O C# 8,0 veio com o VS 2019 e é a primeira versão principal do C# que se destina especificamente ao .NET Core. Alguns recursos dependem de novos recursos do CLR, outros em tipos de biblioteca adicionados somente no .NET Core.

  1. Membros somente leitura

  2. Métodos de interface padrão

  3. Aprimoramentos de correspondência de padrões:

  4. Declarações using

  5. Funções locais estáticas

  6. Estruturas ref descartáveis

  7. Tipos de referência anuláveis

  8. Fluxos assíncronos

  9. Índices e intervalos

  10. Atribuição de União nula

  11. Tipos construídos não gerenciados

  12. Stackalloc em expressões aninhadas

  13. Aprimoramento de cadeias de caracteres idênticas interpoladas

C# 9.0

O C# 9.0 adiciona os seguintes recursos e aprimoramentos à linguagem :

  1. Registros

  2. Setters somente init

  3. Instruções de nível superior

  4. Melhorias na correspondência de padrões

  5. Desempenho e interoperabilidade

  6. Recursos de ajuste e término

  7. Suporte para geradores de código

O C# 9.0 tem suporte no .NET 5.

C# 10.0

O C# 10.0 adiciona os seguintes recursos e aprimoramentos à linguagem :

O C# 10.0 tem suporte no .NET 6.

Para saber o que há de novo com o C# 11 veja a documentação da Microsoft em : What's new in C# 11

E estamos conversados...

Referências:


José Carlos Macoratti