Foreword
This specification replaces ECMA-334:2022. Changes from the previous edition include the addition of the following:
- Binary integer literals
- Embedded digit separators in numeric literals
- Leading-digit separators in binary and hexadecimal integer literals
out
variables- Discards
- Tuple types
- Pattern Matching
ref
locals and returns, conditionalref
expressions,ref
withthis
in extension methods, and reassignment ofref
local variables- Local Functions
- More expression-bodied members
throw
Expressions- Generalized
async
return types async Main
methoddefault
literal expressions- Non-trailing named arguments
private protected
access modifierin
parameter modifierreadonly
structsref
structs- Indexing movable fixed buffer without pinning
- Initializers on
stackalloc
arrays - Pattern-based
fixed
statements System.Delegate
andSystem.Enum
as class_type constraints.- Additional generic constraints
- Allow expression variables in more locations
- Attach attributes to the backing field of auto-implemented properties
- Reduce ambiguity of overload resolution
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
ECMA C# draft specification
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for