C# 2.0ââ¬âGenerics (.NET Framework support was added, and C# benefited from this); iterator pattern (the yield keyword); anonymous methods (the delegate keyword), null able types, and the null coalescing operator (??).
C# 3.0ââ¬âAnonymous types, extension methods, object initializes,collection initializes, implicitly typed local variables (var keyword),lambda expressions (=>), and the LINQ query expression pattern.
C# 4.0ââ¬âOptional Parameters and Named Arguments, Dynamic typing (dynamic type), improved COM-Interop, and Contra and
Co-Variance.