Spec for methods/properties: https://github.com/dotnet/csharplang/blob/main/proposals/csharp-14.0/extensions.md
Spec for operators: https://github.com/dotnet/csharplang/blob/main/proposals/csharp-14.0/extension-operators.md
Championed issue: dotnet/csharplang#8697
Core feature
Operators
Productivity
Partners
Follow-up/tracking issues:
Cut list
- indexers
- readonly members (discussion)
- conflict between extension parameter name and parameter name on a static extension member
- EnC support (we'll block edits for .NET 10)
- allow
partial members
- considering some top-level syntax (potentially to alleviate factory scenarios)
- various parsing errors
- language design:
Spec for methods/properties: https://github.com/dotnet/csharplang/blob/main/proposals/csharp-14.0/extensions.md
Spec for operators: https://github.com/dotnet/csharplang/blob/main/proposals/csharp-14.0/extension-operators.md
Championed issue: dotnet/csharplang#8697
https://github.com/dotnet/roslyn/issues/76130in source before done as we converted PROTOTYPE comments to reference this when we merged tomain.Core feature
extensionkeywordscoped.;nameofexpression.abstract,virtual,override,new,sealed,partial, andprotected(and related accessibility modifiers).initaccessors.ref,ref readonlyandinmodifiers, as long as the receiver type is known to be a value type.readonly, which prevents it from mutating the receiverthismodifiercrefreferences to membersOperators
LangVer
check parameter and return types
null-coalescing assignment
cref
Completeness
Binder.BindTupleBinaryOperatorInfo. The assumption is things just work.Productivity
Partners
ExtensionMarkerNameAttributeto BCL (Add ExtensionMarkerAttribute runtime#118188)Follow-up/tracking issues:
using directives follow-upsindexersadjust resolution on type receiverExtensions: Ignore ref kind of extension parameter for static members in betterness #79885remaining pattern-based scenarios: collection expressionsExtensions: Address follow-ups related to collection expressions #79877instrumentationExtensions: address instrumentation follow-ups #79557adjust conflict rulesCut list
partialmembers