In all previous versions of C# (with the exception of C# 6.0 maybe) new features have revolved around a specific theme:
- C# 2.0 introduced generics.
- C# 3.0 enabled LINQ by bringing extension methods, lambda expressions, anonymous types and other related features.
- C# 4.0 was all about interoperability with dynamic non-strongly typed languages.
- C# 5.0 simplified asynchronous programming with the async and await keywords.
- C# 6.0 had its compiler completely rewritten from scratch, and introduced a variety of small features and improvements that were easier to implement now.
C# 7.0 is no exception to this rule. The language designers were focusing on three main themes:
Working with Data – Increased usage of web services is changing the way data is being modelled. Instead of designing the data models as a part of the application, their definition is becoming a part of web service contracts. While this is very convenient…