C# 5.0 Nowe elementy języka: Słowa kluczowe await i async ułatwiające programowanie asynchroniczne. Nowy atrybut Caller Info umożliwiający uzyskanie szczegółowych informacji o wywołaniu metod.
C# 6.0 Możliwość użycia słów kluczowych async/await w blokach catch/finally Nowa dyrektywa preprocesora nameof
Dodano filtry wyjątków w bloku catch Dodaną nowy sposób na formatowanie łańcuchów znaków - String Interpolation
C# 7.0 Możliwość tworzenia funkcji lokalnych (definiowanych wewnątrz innych funkcji) Value Tuples public (string name, int age) GetStudentInfo() { return (name: "Annie", age: 25); }
var (name, age) info = GetStudentInfo(); ref return - zwracanie poprzez referencję (ma głównie wartość wydajnościową, np. przy dużych strukturach). public class Score { private int value = 5;
public ref int Get()
return ref this.value;
ref locals pattern matching - umożliwia sprawdzanie, czy zmienna jest danego typu i, jeśli tak, przypisanie tej wartości do nowej zmiennej typu docelowego.