Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .openpublishing.publish.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
{
"path_to_root": "_csharpstandard",
"url": "https://github.com/dotnet/csharpstandard",
"branch": "alpha-v10",
"branch": "v11-alpha",
"include_in_build": true,
"branch_mapping": {}
},
Expand Down
4 changes: 2 additions & 2 deletions .openpublishing.redirection.csharp.json
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@
},
{
"source_path_from_root": "/redirections/proposals/csharp-10.0/generic-attributes.md",
"redirect_url": "/dotnet/csharp/language-reference/proposals/csharp-11.0/generic-attributes"
"redirect_url": "/dotnet/csharp/language-reference/language-specification/attributes#232-attribute-classes"
},
{
"source_path_from_root": "/docs/csharp/async.md",
Expand Down Expand Up @@ -1983,7 +1983,7 @@
},
{
"source_path_from_root": "/docs/csharp/language-reference/proposals/csharp-11.0/index.md",
"redirect_url": "/dotnet/csharp/language-reference/proposals/csharp-11.0/static-abstracts-in-interfaces"
"redirect_url": "/dotnet/csharp/language-reference/language-specification/interfaces#1947-interface-operators"
},
{
"source_path_from_root": "/docs/csharp/language-reference/specifications.md",
Expand Down
35 changes: 0 additions & 35 deletions docfx.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@
},
{
"files": [
"csharp-11.0/*.md",
"csharp-12.0/*.md",
"csharp-13.0/*.md",
"csharp-14.0/*.md",
Expand Down Expand Up @@ -505,7 +504,6 @@
},
"ms.date": {
"_csharpstandard/standard/*.md": "09/12/2025",
"_csharplang/proposals/csharp-11.0/*.md": "09/30/2022",
"_csharplang/proposals/csharp-12.0/*.md": "08/15/2023",
"_csharplang/proposals/csharp-13.0/*.md": "10/31/2024",
"_csharplang/proposals/csharp-14.0/*.md": "08/06/2025",
Expand Down Expand Up @@ -618,22 +616,6 @@
"_csharpstandard/standard/standard-library.md": "Standard library",
"_csharpstandard/standard/documentation-comments.md": "Documentation comments",
"_csharpstandard/standard/Bibliography.md": "Bibliography",
"_csharplang/proposals/csharp-11.0/generic-attributes.md": "Generic attributes",
"_csharplang/proposals/csharp-11.0/auto-default-structs.md": "Auto-default struct",
"_csharplang/proposals/csharp-11.0/checked-user-defined-operators.md": "Checked user defined operators",
"_csharplang/proposals/csharp-11.0/extended-nameof-scope.md": "Extended nameof parameter scope",
"_csharplang/proposals/csharp-11.0/file-local-types.md": "File local types",
"_csharplang/proposals/csharp-11.0/list-patterns.md": "List patterns",
"_csharplang/proposals/csharp-11.0/low-level-struct-improvements.md": "Low level struct improvements",
"_csharplang/proposals/csharp-11.0/new-line-in-interpolation.md": "Interpolated string expression newline",
"_csharplang/proposals/csharp-11.0/numeric-intptr.md": "Numeric IntPtr",
"_csharplang/proposals/csharp-11.0/pattern-match-span-of-char-on-string.md": "Pattern match Span<char>",
"_csharplang/proposals/csharp-11.0/raw-string-literal.md": "Raw string literal",
"_csharplang/proposals/csharp-11.0/relaxing_shift_operator_requirements.md": "Relaxed right shift requirement",
"_csharplang/proposals/csharp-11.0/required-members.md": "Required members",
"_csharplang/proposals/csharp-11.0/static-abstracts-in-interfaces.md": "Static abstract methods in interfaces",
"_csharplang/proposals/csharp-11.0/unsigned-right-shift-operator.md": "Unsigned right shift operator",
"_csharplang/proposals/csharp-11.0/utf8-string-literals.md": "UTF-8 string literals",
"_csharplang/proposals/csharp-12.0/primary-constructors.md": "Primary constructors",
"_csharplang/proposals/csharp-12.0/using-alias-types.md": "Alias any type",
"_csharplang/proposals/csharp-12.0/lambda-method-group-defaults.md": "Optional and parameter array parameters for lambdas and method groups",
Expand Down Expand Up @@ -717,22 +699,6 @@
"_csharpstandard/standard/standard-library.md": "This appendix lists requirements of the specification library. The C# language relies on these types for some of its behavior.",
"_csharpstandard/standard/documentation-comments.md": "This appendix describes XML comments that are used to document your program.",
"_csharpstandard/standard/Bibliography.md": "This appendix lists external standards referenced in this specification.",
"_csharplang/proposals/csharp-11.0/generic-attributes.md": "This feature specification describes generic attributes, where a generic class may derive from 'System.Attribute'.",
"_csharplang/proposals/csharp-11.0/auto-default-structs.md": "This feature updates the rules for struct initialization and default values. This feature standardizes the behavior for default struct values and newly initialized structs.",
"_csharplang/proposals/csharp-11.0/checked-user-defined-operators.md": "This feature enables checked and unchecked alternatives for some operators.",
"_csharplang/proposals/csharp-11.0/extended-nameof-scope.md": "This feature enables the nameof expression to be used with parameter names in a method declaration.",
"_csharplang/proposals/csharp-11.0/file-local-types.md": "This feature allows you to create types (either structs or classes) that are visibile only in the file in which they are declared. This is primarily useful for source generators.",
"_csharplang/proposals/csharp-11.0/list-patterns.md": "This feature describes enhancements to pattern matching to support patterns in lists of elements.",
"_csharplang/proposals/csharp-11.0/low-level-struct-improvements.md": "This feature specification describes several features that improve the performance of `struct` types: `ref` fields and overriding lifetime defaults.",
"_csharplang/proposals/csharp-11.0/new-line-in-interpolation.md": "This feature describes changes to allow newlines in the interpolation expressions in an interpolated string expression.",
"_csharplang/proposals/csharp-11.0/numeric-intptr.md": "This feature enables the IntPtr and UIntPtr to be treated as the numeric types nint and nuint, respectively.",
"_csharplang/proposals/csharp-11.0/pattern-match-span-of-char-on-string.md": "This feature enables a Span<char> to pattern match a literal string value.",
"_csharplang/proposals/csharp-11.0/raw-string-literal.md": "This feature describes raw string literals. Raw string literals enable string literals to avoid almost all escape sequences.",
"_csharplang/proposals/csharp-11.0/relaxing_shift_operator_requirements.md": "This feature removes the restriction that the right operand of a right shift must be an integer.",
"_csharplang/proposals/csharp-11.0/required-members.md": "This feature defines the required modifier. The required modifier instructs the compiler that a field or property must be initialized during the construction of a new object.",
"_csharplang/proposals/csharp-11.0/static-abstracts-in-interfaces.md": "This feature enables an interface to define static members. This enables interfaces to define operators that must be provided by implementing types.",
"_csharplang/proposals/csharp-11.0/unsigned-right-shift-operator.md": "This feature defines a logical right-shift operator, `>>>`. The logical right shift operator always shifts in 0 values in the left-most bits during a shift.",
"_csharplang/proposals/csharp-11.0/utf8-string-literals.md": "This feature enables the `u8` suffix on a string literal. The `u8` suffix instructs the compiler to convert the UTF-8 string literal to a `ReadOnlySpan<byte>`.",
"_csharplang/proposals/csharp-12.0/primary-constructors.md": "Primary constructors put the parameters of one constructor in scope for the whole class or struct to be used for initialization or directly as object state. The trade-off is that any other constructors must call through the primary constructor.",
"_csharplang/proposals/csharp-12.0/using-alias-types.md": "Using directives can alias any type, not just named types. You can create aliases for tuple types, generics and more.",
"_csharplang/proposals/csharp-12.0/lambda-method-group-defaults.md": "Optional and parameter array parameters for lambdas and method groups",
Expand Down Expand Up @@ -785,7 +751,6 @@
"titleSuffix": {
"docs/**/*.{md,yml}": ".NET",
"_csharpstandard/standard/*.md": "C# language specification",
"_csharplang/proposals/csharp-11.0/*.md": "C# feature specifications",
"_csharplang/proposals/csharp-12.0/*.md": "C# feature specifications",
"_csharplang/proposals/csharp-13.0/*.md": "C# feature specifications",
"_csharplang/proposals/csharp-14.0/*.md": "C# feature specifications",
Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/language-reference/attributes/general.md
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ The `AsyncMethodBuilder` attribute can be applied to an async method to override

You use these attributes to specify that a type is an *interpolated string handler*. The .NET 6 library already includes <xref:System.Runtime.CompilerServices.DefaultInterpolatedStringHandler?displayProperty=nameWithType> for scenarios where you use an interpolated string as the argument for a `string` parameter. You might have other instances where you want to control how interpolated strings are processed. You apply the <xref:System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute?displayProperty=nameWithType> to the type that implements your handler. You apply the <xref:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute?displayProperty=nameWithType> to parameters of that type's constructor.

You can learn more about building an interpolated string handler in the [interpolated string expression handlers](~/_csharpstandard/standard/attributes.md#23591-custom-interpolated-string-expression-handlers) clause of the C# standard.
You can learn more about building an interpolated string handler in the [interpolated string expression handlers](~/_csharpstandard/standard/attributes.md#235101-custom-interpolated-string-expression-handlers) clause of the C# standard.

## `ModuleInitializer` attribute

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ For more information, see the following sections of the [C# language specificati
- [Default values](~/_csharpstandard/standard/variables.md#93-default-values)
- [Default constructors](~/_csharpstandard/standard/types.md#833-default-constructors)
- [Parameterless struct constructors](~/_csharpstandard/standard/structs.md#1659-constructors)
- [Auto default structs](~/_csharplang/proposals/csharp-11.0/auto-default-structs.md)
- [Auto default structs](~/_csharpstandard/standard/structs.md#16581-field-initializers)

## See also

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,6 @@ For more information, see the following sections of the [C# language specificati
- [Integral types](~/_csharpstandard/standard/types.md#836-integral-types)
- [Integer literals](~/_csharpstandard/standard/lexical-structure.md#6453-integer-literals)
- [Native sized integral types](~/_csharpstandard/standard/types.md#836-integral-types)
- [Numeric `IntPtr` and `UIntPtr`](~/_csharplang/proposals/csharp-11.0/numeric-intptr.md)

## See also

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ For more information, see the following sections of the [C# language specificati
- [Structs: Ref modifier](~/_csharpstandard/standard/structs.md#1623-ref-modifier)
- [Safe context constraint for ref struct types](~/_csharpstandard/standard/structs.md#16515-safe-context-constraint)

For more information about `ref` fields, see the [Low-level struct improvements](~/_csharplang/proposals/csharp-11.0/low-level-struct-improvements.md) proposal note.
For more information about `ref` fields, see [Ref fields](~/_csharpstandard/standard/structs.md#16582-ref-fields) in the C# language specification.

## See also

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -283,8 +283,7 @@ For more information, see the following sections of the [C# language specificati
- [§8.2.4 The dynamic type](~/_csharpstandard/standard/types.md#824-the-dynamic-type)
- [§8.2.5 The string type](~/_csharpstandard/standard/types.md#825-the-string-type)
- [§8.2.8 Delegate types](~/_csharpstandard/standard/types.md#828-delegate-types)
- [Raw string literals](~/_csharplang/proposals/csharp-11.0/raw-string-literal.md)
- [UTF-8 string literals](~/_csharplang/proposals/csharp-11.0/utf8-string-literals.md)
- [§6.4.5.6 String literals](~/_csharpstandard/standard/lexical-structure.md#6456-string-literals)

### See also

Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/language-reference/builtin-types/struct.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ For more information, see the [Structs](~/_csharpstandard/standard/structs.md) s
- [Allow `with` expression on structs](~/_csharpstandard/standard/expressions.md#1210-with-expressions)
- [Record structs](~/_csharpstandard/standard/structs.md#164-synthesized-record-struct-members)

You can also read about [Auto default structs](~/_csharplang/proposals/csharp-11.0/auto-default-structs.md) in the feature proposal specification.
You can also read about [Auto default structs](~/_csharpstandard/standard/structs.md#16581-field-initializers) in the C# language specification.

## See also

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ The C# language requires specific pairings and signatures for Boolean operators
- **CS9025**: *Checked operator requires a matching non-checked version to also be declared*
- **CS9027**: *Unexpected keyword 'unchecked'*

The `checked` and `unchecked` keywords can only be applied to specific operator declarations. For the full rules, see [Arithmetic operators](../operators/arithmetic-operators.md#user-defined-checked-operators) and [User-defined checked operators](~/_csharplang/proposals/csharp-11.0/checked-user-defined-operators.md).
The `checked` and `unchecked` keywords can only be applied to specific operator declarations. For the full rules, see [Arithmetic operators](../operators/arithmetic-operators.md#user-defined-checked-operators) and [Operators](~/_csharpstandard/standard/classes.md#1510-operators) in the C# language specification.

- Remove the `checked` or `unchecked` keyword from an unsupported operator (**CS9023**, **CS9024**). Only the arithmetic operators `+`, `-`, `*`, `/`, `++`, `--`, and explicit conversion operators support checked and unchecked variants. Other operators, such as comparison or equality operators, don't have distinct overflow behavior and can't be marked checked or unchecked.
- Add a matching non-checked version of the operator (**CS9025**). A `checked` operator provides the overflow-throwing behavior, but the compiler also needs the corresponding unchecked version to use in `unchecked` contexts and as the default when neither context is specified.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ The compiler issues the following errors when you specified an [interpolated str
- **CS8950**: *Parameter is an argument to the interpolated string handler conversion on parameter, but the corresponding argument is specified after the interpolated string expression.*
- **CS8951**: *Parameter is not explicitly provided, but is used as an argument to the interpolated string handler conversion on parameter.*

An interpolated string handler is a pattern-based construct. It's important to get the pattern correct. Consult the C# language specification section on [custom interpolated string expression handlers](~/_csharpstandard/standard/attributes.md#23591-custom-interpolated-string-expression-handlers), or follow the tutorial on [building an interpolated string handler](../../advanced-topics/performance/interpolated-string-handler.md).
An interpolated string handler is a pattern-based construct. It's important to get the pattern correct. Consult the C# language specification section on [custom interpolated string expression handlers](~/_csharpstandard/standard/attributes.md#235101-custom-interpolated-string-expression-handlers), or follow the tutorial on [building an interpolated string handler](../../advanced-topics/performance/interpolated-string-handler.md).

## Caller debugging information

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ To correct these errors:
- Remove the `unscoped` modifier or the <xref:System.Diagnostics.CodeAnalysis.UnscopedRefAttribute?displayProperty=nameWithType> attribute from struct constructors and init-only members. These members have special initialization semantics where the compiler must ensure that any references don't outlive the initialization phase, and allowing unscoped references would violate the guarantee that initialization completes before the struct becomes fully accessible (**CS9101**).
- Remove the `unscoped` modifier from interface implementation methods when the corresponding interface method doesn't have it. The unscoped characteristic affects the method's contract regarding reference lifetime guarantees, and implementations must maintain the same contract as the interface they're implementing to ensure callers can rely on consistent lifetime behavior regardless of which implementation is invoked (**CS9102**).

For more information about scoped and unscoped references, see [Method parameters](../keywords/method-parameters.md) and the [low-level struct improvements](~/_csharplang/proposals/csharp-11.0/low-level-struct-improvements.md) feature specification.
For more information about scoped and unscoped references, see [Method parameters](../keywords/method-parameters.md) and [Safe context constraint](~/_csharpstandard/standard/structs.md#16515-safe-context-constraint) in the C# language specification.

## Reference variables require a referent

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ When you implement a custom [interpolated string handler](../../advanced-topics/

- Make sure all `AppendLiteral` and `AppendFormatted` methods return either `void` or `bool` (**CS8941**). The handler pattern requires these methods to have one of these return types so the compiler can properly generate the interpolation code. Methods returning `bool` enable short-circuiting when the handler determines that further processing isn't needed.
- Make sure all append methods in your handler type use the same return type (**CS8942**). If one method returns `void`, all append methods must return `void`. If one returns `bool`, all must return `bool`. Mixing return types prevents the compiler from generating consistent interpolation code.
- Apply the <xref:System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute> to your handler type and make sure it has a valid constructor (**CS8946**). An interpolated string handler type must be marked with this attribute and follow the [handler pattern](~/_csharpstandard/standard/attributes.md#23591-custom-interpolated-string-expression-handlers) to be recognized by the compiler.
- Apply the <xref:System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute> to your handler type and make sure it has a valid constructor (**CS8946**). An interpolated string handler type must be marked with this attribute and follow the [handler pattern](~/_csharpstandard/standard/attributes.md#235101-custom-interpolated-string-expression-handlers) to be recognized by the compiler.

## Interpolated string handler usage restrictions

Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/language-reference/keywords/file.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Member lookup prefers a file-local type declared in the same file over a non-fil

## C# language specification

For more information, see [Declared accessibility](~/_csharpstandard/standard/basic-concepts.md#752-declared-accessibility) in the [C# Language Specification](~/_csharpstandard/standard/README.md), and the [File local types](~/_csharplang/proposals/csharp-11.0/file-local-types.md) feature specification.
For more information, see [Declared accessibility](~/_csharpstandard/standard/basic-concepts.md#752-declared-accessibility) in the [C# Language Specification](~/_csharpstandard/standard/README.md).

## See also

Expand Down
Loading
Loading