| 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 Property Patterns
- Null Parameter Checking
- Constant interpolated strings
- Caller argument expression
|
| C# 11.0 | .NET 7.0 | Visual Studio 2022 (v17.4) | - Raw string literals
- Generic math support
- Generic attributes
- UTF-8 string literals
- List patterns
- File-local types
- Required members
- Auto-default structs
- ref fields and scoped ref
- Newlines in string interpolation
|
| C# 12.0 | .NET 8.0 | Visual Studio 2022 (v17.8) | - Primary constructors
- Collection expressions
- Inline arrays
- Optional parameters in lambda expressions
- ref readonly parameters
- Alias any type
- Experimental attribute
- Interceptors (preview)
|
| C# 13.0 | .NET 9.0 | Visual Studio 2022 (v17.12) | - params collections
- New lock object
- New escape sequence \e
- Implicit index access in object initializers
- ref and unsafe in async methods and iterators
- allows ref struct
- More partial members
- Overload resolution priority
|