Name |
Value |
Description |
Default
|
0 |
The default language version, which is the latest supported version.
|
CSharp1
|
1 |
C# language version 1
|
CSharp2
|
2 |
C# language version 2
|
CSharp3
|
3 |
C# language version 3
Features: LINQ.
|
CSharp4
|
4 |
C# language version 4
Features: dynamic.
|
CSharp5
|
5 |
C# language version 5
Features: async, caller info attributes.
|
CSharp6
|
6 |
C# language version 6
Features: - Using of a static class
- Exception filters
- Await in catch/finally blocks
- Auto-property initializers
- Expression-bodied methods and properties
- Null-propagating operator ?.
- String interpolation
- nameof operator
- Dictionary initializer
|
CSharp7
|
7 |
C# language version 7.0
Features: - Out variables
- Pattern-matching
- Tuples
- Deconstruction
- Discards
- Local functions
- Digit separators
- Ref returns and locals
- Generalized async return types
- More expression-bodied members
- Throw expressions
|
CSharp7_1
|
701 |
C# language version 7.1
Features: - Async Main
- Default literal
- Inferred tuple element names
- Pattern-matching with generics
|
CSharp7_2
|
702 |
C# language version 7.2
Features: - Ref readonly
- Ref and readonly structs
- Ref extensions
- Conditional ref operator
- Private protected
- Digit separators after base specifier
- Non-trailing named arguments
|
CSharp7_3
|
703 |
C# language version 7.3
Features: - Indexing fixed fields does not require pinning
- ref local variables may be reassigned
- stackalloc arrays support initializers
- More types support the fixed statement
- Enhanced generic constraints
- Tuples support == and !=
- Attach attributes to the backing fields for auto-implemented properties
- Method overload resolution improvements when arguments differ by 'in'
- Extend expression variables in initializers
- Improved overload candidates
- New compiler options (-publicsign and -pathmap)
|
CSharp8
|
800 |
C# language version 8.0
Features: - Readonly members
- Default interface methods
- Pattern matching enhancements (switch expressions, property patterns, tuple patterns, and positional patterns)
- Using declarations
- Static local functions
- Disposable ref structs
- Nullable reference types
- Asynchronous streams
- Asynchronous disposable
- Indices and ranges
- Null-coalescing assignment
- Unmanaged constructed types
- Stackalloc in nested expressions
- Enhancement of interpolated verbatim strings
|
CSharp9
|
900 |
C# language version 9.0
Features: - Records
- Init only setters
- Top-level statements
- Pattern matching enhancements
- Native sized integers
- Function pointers
- Suppress emitting localsinit flag
- Target-typed new expressions
- Static anonymous functions
- Target-typed conditional expressions
- Covariant return types
- Extension GetEnumerator support for foreach loops
- Lambda discard parameters
- Attributes on local functions
- Module initializers
- New features for partial methods
|
CSharp10
|
1000 |
C# language version 10.0
Features: - Record structs
- Global using directives
- Lambda improvements
- Improved definite assignment
- Constant interpolated strings
- Mix declarations and variables in deconstruction
- Extended property patterns
- Sealed record ToString
- Source Generator v2 APIs
- Method-level AsyncMethodBuilder
|
CSharp11
|
1100 |
C# language version 11.0
Features:
- Raw string literals
- Static abstract members in interfaces
- Generic attributes
- Newlines in interpolations
- List-patterns
- Required members
- Span<char> constant pattern
- Struct auto-default
- Nameof(parameter)
- Checked user-defined operators
- UTF-8 string literals
- Unsigned right-shift operator
- Relaxed shift operator
- Ref fields
- File-local types
|
CSharp12
|
1200 |
C# language version 12.0
Features:
- Primary constructors
- Using aliases for any types
- Nameof accessing instance members
- Inline arrays
- Collection expressions
- Ref readonly parameters
- Lambda optional parameters
|
CSharp13
|
1300 |
C# language version 13.0
Features:
- Escape character
- Method group natural type improvements
- `Lock` object
- Implicit indexer access in object initializers
- `params` collections
- ref/unsafe in iterators/async
- `allows ref struct` constraint
- Partial properties
|
LatestMajor
|
2147483645 |
The latest major supported version.
|
Preview
|
2147483646 |
Preview of the next language version.
|
Latest
|
2147483647 |
The latest supported version of the language.
|