Histórico do C# e recursos disponíveis:
2002 - Versão 1
Inicio do C# baseado basicamente em C++ e Java
2005 - Versão 2
- Generics
Reuso de código mas perde-se performance - Iterators
- Partial (Classes Parceiais)
Organização dos códigos - Tipos Anuláveis (null)
- Métodos Anônimos
- Classes estáticas (static)
- tipo de acessores diferentes para GET/SET
2007 - Versão 3
- LINQ
- var (supersintaxe: variável não tipada, mas compilado com um tipo deduzido)
- Métodos de extensão
- Expressões lambdas
- Iniciadores de Objetos
- Tipos anônimos
- Arvore de Expressão
- Propriedades Automáticas
- Métodos Parciais
- Iniciadores de coleções
2010 - Versão 4
- Método com parâmetros/argumentos opcionais (default)
- Interoperabilidade com COM
- Objetos com Tipagem dinâmica (dynamic)
- Covariância e contravariância:
2012 - Versão 5
- TAP – Task-based – execução assíncrona (Task)
? - Versão 6
- Projeto Roslyn
- Compiler as a Service (CaaS)
- API de compilador
- Arvore de sintaxe
- Simbolos
- Binding
- Emit API
Caramba… muito coisa que o C# faz…