C# Version History
C# was first introduced with .NET Framework 1.0 in the year 2002 and evolved much since then. The following table lists important features introduced in each version of C#:
Version | .NET Framework | Visual Studio | Important Features |
---|
C# 1.0 | .NET Framework 1.0/1.1 | Visual Studio .NET 2002 | |
C# 2.0 | .NET Framework 2.0 | Visual Studio 2005 | - Generics
- Partial types
- Anonymous methods
- Iterators
- Nullable types
- Private setters (properties)
- Method group conversions (delegates)
- Covariance and Contra-variance
- Static classes
|
C# 3.0 | .NET Framework 3.0\3.5 | Visual Studio 2008 | - Implicitly typed local variables
- Object and collection initializers
- Auto-Implemented properties
- Anonymous types
- Extension methods
- Query expressions
- Lambda expressions
- Expression trees
- Partial Methods
|
C# 4.0 | .NET Framework 4.0 | Visual Studio 2010 | - Dynamic binding (late binding)
- Named and optional arguments
- Generic co- and contravariance
- Embedded interop types
|
C# 5.0 | .NET Framework 4.5 | Visual Studio 2012/2013 | - Async features
- Caller information
|
C# 6.0 | .NET Framework 4.6 | Visual Studio 2013/2015 | - Expression Bodied Methods
- Auto-property initializer
- nameof Expression
- Primary constructor
- Await in catch block
- Exception Filter
- String Interpolation
|
C# 7.0 | .NET Core 2.0 | Visual Studio 2017 | - out variables
- Tuples
- Discards
- Pattern Matching
- Local functions
- Generalized async return types
- more..
|
C# 8.0 | .NET Core 3.0 | Visual Studio 2019 | - Readonly members
- Default interface methods
- Using declarations
- Static local functions
- Disposable ref structs
- Nullable reference types
- more..
|
C# 9.0 | .NET 5.0 | Visual Studio 2019 | - Records
- Init-only properties
- Top-level statements
- Init accessors and readonly fields
- With-expressions
- Value-based equality
- more..
|
C# 10.0 | .NET 6.0 | Visual Studio 2022 | - Record structs
- Global using directives
- File-scoped namespace declaration
- Extended Proptery Patterns
- Null Parameter Checking
- Constant interpolated strings
- more..
|
Learn how to setup a development environment for C# in the next section.