Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time

Language Feature Status

This document reflects the status, and planned work in progress, for the compiler team. It is a live document and will be updated as work progresses, features are added / removed, and as work on feature progresses. This is not an exhaustive list of our features but rather the ones which have active development efforts behind them.

C# Next

Feature Branch State Developer Reviewer LDM Champ
Semi-auto-properties semi-auto-props In Progress Youssef1313 333fred, RikkiGibson CyrusNajmabadi
Primary Constructors PrimaryConstructors In Progress AlekseyTs cston, jjonescz MadsTorgersen
Params Span<T> + Stackalloc any array type params-span In Progress cston TBD jaredpar
nameof accessing instance members main In Progress YairHalberstadt 333fred, AlekseyTs 333fred
Lambda default parameters lambda-default-parameters Merged into 17.5p2 adamperlin, jjonescz 333fred, cston captainsafia
Default in deconstruction decon-default In Progress jcouv gafter jcouv
Collection Literals CollectionLiterals cston 333fred, RikkiGibson CyrusNajmabadi

C# 11.0

Feature Branch State Developer Reviewer LDM Champ
File-local types file-types Merged into 17.4p1 RikkiGibson jcouv, cston stephentoub
ref fields ref-fields Merged into 17.3p3 cston RikkiGibson, AlekseyTs jaredpar
Required members main Merged into 17.3p2 333fred jcouv, RikkiGibson 333fred
DIM for Static Members DefaultInterfaceImplementation Merged into 17.3p2 AlekseyTs 333fred, jcouv MadsTorgersen
Numeric IntPtr numeric-intptr Merged into 17.3p2 jcouv cston, 333fred jcouv
Unsigned Right Shift UnsignedRightShift Merged into 17.3p1 AlekseyTs 333fred, jcouv AlekseyTs
Utf8 String Literals Utf8StringLiterals Merged into 17.3p1 AlekseyTs cston, RikkiGibson MadsTorgersen
Pattern matching on ReadOnlySpan<char> patterns-span-char Merged into 17.3p1 YairHalberstadt cston, RikkiGibson jcouv
Checked Operators CheckedUserDefinedOperators Merged into 17.3p1 AlekseyTs 333fred, chsienki AlekseyTs
auto-default structs main Merged into 17.3p1 RikkiGibson cston, jcouv
Newlines in interpolations main Merged in 17.1p1 CyrusNajmabadi jcouv, chsienki CyrusNajmabadi
List patterns list-patterns Merged in 17.1p2 alrz jcouv, 333fred 333fred
Raw string literals RawStringLiterals Merged into 17.2 CyrusNajmabadi jcouv CyrusNajmabadi
Cache delegates for static method group main Merged into 17.2 pawchen AlekseyTs, jcouv AlekseyTs
nameof(parameter) main Merged into 17.3p2 jcouv AlekseyTs, RikkiGibson jcouv
Relaxing Shift Operator main Merged into 17.3p2 AlekseyTs 333fred, jcouv MadsTorgersen
Generic attributes generic-attributes Merged into 17.0p4 AviAvni RikkiGibson, jcouv mattwar

C# 10.0

Feature Branch State Developer Reviewer LDM Champ
Record structs record-structs Merged into 16.11 jcouv AlekseyTs, RikkiGibson jcouv
Global Using Directive GlobalUsingDirective Merged into 16.11 AlekseyTs 333fred, cston AlekseyTs
Improved Definite Assignment improved-definite-assignment Merged into 17.0 RikkiGibson jcouv jaredpar
Constant Interpolated Strings main Merged into 16.9p3 kevinsun-dev 333fred jaredar, agocke
Extended property patterns extended-property-patterns Merged into 17.0 alrz jcouv, 333fred 333fred
Sealed record ToString main Merged thomaslevesque jcouv 333fred
Source Generator V2 APIs features/source-generators Merged into 17.0p2 chsienki rikkigibson, jaredpar, cston N/A
Mix declarations and variables in deconstruction main Merged into 16.10 YairHalberstadt jcouv MadsTorgersen
Async method builder override main Merged into 17.0p2 jcouv cston, RikkiGibson stephentoub
Enhanced #line directive main Merged into 17.0p2 cston jcouv, RikkiGibson MadsTorgersen
Lambda improvements main Merged into 17.0p2 cston 333fred, jcouv jaredpar
Static Abstract Members In Interfaces C# 10 Preview main Merged into 17.0p2 AlekseyTs 333fred, RikkiGibson MadsTorgersen
Interpolated string improvements main Merged into 17.0p3 333fred AlekseyTs, chsienki jaredpar
File-scoped namespace main Merged into 17.0p3 RikkiGibson jcouv, chsienki CyrusNajmabadi
Parameterless struct constructors struct-ctors Merged into 17.0p3 cston jcouv, 333fred jcouv
Caller expression attribute main Merged into 17.0p3 Youssef1313 333fred,AlekseyTs jcouv

VB 17.0

Feature Branch State Developer Reviewer LDM Champ
Caller expression attribute main Merged into 17.0p3 Youssef1313 333fred,AlekseyTs jcouv

VB 16.9

Feature Branch State Developer Reviewer LDM Champ
Enable consumption of init-only properties main Merged (16.9p3) AlekseyTs jcouv N/A

C# 9

Feature Branch State Developer Reviewer LDM Champ
Target-typed new target-typed-new Merged into 16.7p1 alrz jcouv jcouv
Skip locals init localsinit Merged t-camaia, agocke jaredpar agocke
Lambda discard parameters main Merged jcouv AlekseyTs, chsienki jcouv
Native ints features/NativeInt Merged into 16.7p1 cston 333fred, gafter jaredpar
Attributes on local functions features/local-function-attributes Merged RikkiGibson agocke agocke
Function pointers function-pointers Merged into 16.7p3 333fred AlekseyTs jaredpar
Pattern matching improvements main Merged into 16.7p1 gafter RikkiGibson,agocke gafter
Static lambdas features/static-lambdas Merged in 16.7p4 CyrusNajmabadi jcouv jcouv
Records features/records Merged into 16.7p3 agocke gafter, 333fred agocke
Target-typed conditional features/target-typing Merged into 16.7p4 gafter agocke, RikkiGibson gafter
Covariant Returns features/covariant-returns Merged into 16.8p2 gafter AlekseyTs, agocke gafter
Extension GetEnumerator features/extension-foreach Merged into 16.8p2 YairHalberstadt 333fred 333fred
Module initializers features/module-initializers Merged in 16.7p4 RikkiGibson jnm2 AlekseyTs gafter
Extending Partial features/partial-methods Merged into 16.7p2 RikkiGibson chsienki jaredpar
Top-level statements features/SimplePrograms Merged into 16.7p3 AlekseyTs cston, RikkiGibson MadsTorgersen

C# 8.0

Feature Branch State Developer Reviewer LDM Champ
Default Interface Methods main Merged to dev16.1 preview2 AlekseyTs gafter gafter
Nullable reference type main Merged to dev16.0 preview1 cston, jcouv AlekseyTs, 333fred mattwar
Recursive patterns main Merged to dev16.0 preview2 gafter agocke, cston gafter
Async streams main Merged to dev16.0 preview1 jcouv agocke stephentoub
Enhanced using main Merged to dev16.0 preview2 chsienki agocke jaredpar
Ranges main Merged to dev16.0 preview1 agocke cston jaredpar
Null-coalescing Assignment main Merged to dev16.0 preview1 333fred cston gafter
Alternative interpolated verbatim strings main Merged to dev16.0 preview1 jcouv cston jcouv
stackalloc in nested contexts main Merged to dev16.2 preview1 gafter - gafter
Unmanaged generic structs main Merged to dev16.1 preview1 RikkiGibson - jaredpar
Static local functions main Merged in dev16.0 preview2 cston jaredpar jcouv
Readonly members main Merged to dev16.1 preview2 RikkiGibson TBD jaredpar

VB 16.0

Feature Branch State Developer Reviewer LDM Champ
Line continuation comments continuation-comments Merged in 16.1 (preview2) paul1956 AlekseyTs gafter
Relax null-coalescing operator requirements null-operator-enhancements Merged in 16.0 333fred cston gafter

C# 7.3

Feature Branch State Developer Reviewer LDM Champ
blittable None Merged None - jaredpar
Support == and != for tuples tuple-equality Merged jcouv AlekseyTs jcouv
strongname main Merged tyoverby agocke jaredpar
Attribute on backing field features/compiler Merged jcouv AlekseyTs jcouv
Ref Reassignment ref-reassignment Merged agocke vsadov gafter
Constraints constraints Merged OmarTawfik vsadov gafter
Stackalloc initializers stackalloc-init Merged alrz vsadov jcouv
Custom fixed custom-fixed Merged vsadov jcouv jarepdar
Indexing movable fixed buffers - Merged vsadov jcouv jarepdar
Improved overload candidates features/compiler Merged gafter cston mattwar
Expression variables features/ExpressionVariables Merged AlekseyTs gafter AlekseyTs

C# 7.2 fixes

Feature Branch State Developer Reviewer LDM Champ
ref and this ordering in ref extension - Merged alrz - -
Tiebreaker for by-val and in overloads main Merged OmarTawfik - -

C# 7.2

Feature Branch State Developer Reviewer LDM Champ
ref readonly main Merged vsadov, OmarTawfik cston,gafter jaredpar
interior pointer/Span/ref struct main Merged vsadov gafter, jaredpar jaredpar
non-trailing named arguments main Merged jcouv gafter jcouv
private protected main Merged gafter jcouv gafter
conditional ref operator main Merged vsadov cston jaredpar
Digit separator after base specifier main Merged alrz - gafter

C# 7.1

Feature Branch State Developer Reviewer LDM Champ
Async Main main Merged tyoverby vsadov stephentoub
Default Expressions main Merged jcouv cston jcouv
Ref Assemblies main Merged (IDE and project-system integrations ongoing) jcouv gafter N/A
Infer tuple names main Merged jcouv gafter jcouv
Pattern-matching with generics main Merged gafter agocke gafter


  • Is target version a guarantee?: No. It's explicitly not a guarantee. This is just the planned and ongoing work to the best of our knowledge at this time.
  • Where are these State values defined?: Take a look at the Developing a Language Feature document.