The first version of .NET Framework 1.0 was released in 2002. Just like .NET Framework, there are different versions of CLR and C# as well. The different versions of .NET Framework are compatible with some particular versions of both CLR and C#. The following table provides a compatibility mapping between the different .NET Framework versions and its compatible versions of CLR:
.NET Framework |
CLR version |
1.0 |
1.0 |
1.1 |
1.1 |
2.0/3.0/3.5 |
2.0 |
4.0/4.5/4.5.1/4.5.2/4.6/4.6.1/4.6.2/4.7/4.7.1/4.7.2/4.8 |
4 |
The following table matches the different versions of .NET Framework with its compatible C# version, and lists some of the important programming features that were released in that version of C#:
Version |
.NET Framework |
Important features in C# |
C# 1.0/1.1/1.2 |
.NET Framework 1.0/1.1 |
First release of C# |
C# 2.0 |
.NET Framework 2.0 |
Generics anonymous methods, Nullable types, and Iterators |
C# 3.0 |
.NET Framework 2.0/3.0/3.5/4.0 |
Query expressions, Lambda expression, and Extension methods |
C# 4.0 |
.NET Framework 2.0/3.0/3.5/4.0 |
Dynamic binding, Named/optional arguments, and Embedded interop types |
C# 5.0 |
.NET Framework 4.5 |
Asynchronous members |
C# 6.0 |
.NET Framework 4.6/4.6.2/4.7/4.7.1/4.7.2 |
Exception filters, String interpolation, nameof operator, and Dictionary initializer |
C# 7.0/7.1/7.2/7.3 |
.NET Framework 4.6/4.6.2/4.7/4.7.1/4.7.2 |
Out variables, Pattern matching, Reference locals and returns, and Local functions |
C# 8 |
.NET Framework 4.8 |
Read-only members and Default interface members |
In the next section, we will look at Visual Studio, an IDE tool provided by Microsoft for building applications with .NET Framework, and some of its built-in features that can help us during the development phase.