You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: standard/delegates.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -83,7 +83,7 @@ The only way to declare a delegate type is via a *delegate_declaration*. Every d
83
83
84
84
## 20.3 Delegate members
85
85
86
-
Everydelegatetypeinheritsmembersfromthe `Delegate` classasdescribedin [§15.3.4](classes.md#1534-inheritance). Inaddition, everydelegate type must provide a non-generic `Invoke` method whose parameter list matches the *formal_parameter_list* in the delegate declaration, whosereturntypematchesthe*return_type*or*ref_return_type*inthedelegate declaration, andforreturns-by-refdelegateswhose*ref_kind*matchesthatinthedelegate declaration. The `Invoke` method shall be at least as accessible as the containing delegate type. Calling the `Invoke` method on a delegate type is semantically equivalent to using the delegate invocation syntax ([§20.6](delegates.md#206-delegate-invocation)) .
86
+
Everydelegatetypeinheritsmembersfromthe `Delegate` classasdescribedin [§15.3.4](classes.md#1534-inheritance). Inaddition, everydelegate type shall provide a non-generic `Invoke` method whose parameter list matches the *formal_parameter_list* in the delegate declaration, whosereturntypematchesthe*return_type*or*ref_return_type*inthedelegate declaration, andforreturns-by-refdelegateswhose*ref_kind*matchesthatinthedelegate declaration. The `Invoke` method shall be at least as accessible as the containing delegate type. Calling the `Invoke` method on a delegate type is semantically equivalent to using the delegate invocation syntax ([§20.6](delegates.md#206-delegate-invocation)) .
Copy file name to clipboardExpand all lines: standard/lexical-structure.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -124,7 +124,7 @@ If the following token is among this list, or an identifier in such a context, t
124
124
>
125
125
> *endexample*
126
126
127
-
A*relational_expression* ([§12.12.1](expressions.md#12121-general)) canhavetheform“*relational_expression* `is` *type*” or “*relational_expression* `is` *constant_pattern*,” eitherofwhichmightbeavalidparseofaqualifiedidentifier. Inthiscase, anattemptismadetobinditasatype ([§7.8.1](basic-concepts.md#781-general)); however, ifthatfails, itisboundasanexpression, andtheresultmustbeaconstant.
127
+
Whenrecognisinga*relational_expression* ([§12.12.1](expressions.md#12121-general)) ifboththe “*relational_expression* `is` *type*” and “*relational_expression* `is` *constant_pattern*” alternativesareapplicable, and *type* resolvestoanaccessibletype, thenthe “*relational_expression* `is` *type*” alternativeshallbechosen.
128
128
129
129
## 6.3 Lexicalanalysis
130
130
@@ -1447,7 +1447,7 @@ fragment PP_End_Region
1447
1447
;
1448
1448
```
1449
1449
1450
-
Nosemanticmeaningisattachedtoaregion; regionsareintendedfor use by the programmer or by automated tools to mark a section of source code. There must be one `#endregion` directive matching every `#region` directive. The message specified in a `#region` or `#endregion` directive likewise has no semantic meaning; itmerelyservestoidentifytheregion. Matching `#region` and `#endregion` directivesmayhavedifferent*PP_Message*s.
1450
+
Nosemanticmeaningisattachedtoaregion; regionsareintendedfor use by the programmer or by automated tools to mark a section of source code. There shall be one `#endregion` directive matching every `#region` directive. The message specified in a `#region` or `#endregion` directive likewise has no semantic meaning; itmerelyservestoidentifytheregion. Matching `#region` and `#endregion` directivesmayhavedifferent*PP_Message*s.
Copy file name to clipboardExpand all lines: standard/namespaces.md
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -64,7 +64,7 @@ A *namespace_declaration* may occur as a top-level declaration in a *compilation
64
64
65
65
Namespaces are implicitly `public` and the declaration of a namespace cannot include any access modifiers.
66
66
67
-
Within a *namespace_body*, the optional *using_directive*s import the names of other namespaces, types and members, allowing them to be referenced directly instead of through qualified names. The optional *namespace_member_declaration*s contribute members to the declaration space of the namespace. Note that all *using_directive*s must appear before any member declarations.
67
+
Within a *namespace_body*, the optional *using_directive*s import the names of other namespaces, types and members, allowing them to be referenced directly instead of through qualified names. The optional *namespace_member_declaration*s contribute members to the declaration space of the namespace. Note that all *using_directive*s shall appear before any member declarations.
68
68
69
69
The *qualified_identifier* of a *namespace_declaration* may be a single identifier or a sequence of identifiers separated by “`.`” tokens. The latter form permits a program to define a nested namespace without lexically nesting several namespace declarations.
70
70
@@ -305,7 +305,7 @@ Each *extern_alias_directive* or *using_alias_directive* in a *compilation_unit*
Copy file name to clipboardExpand all lines: standard/standard-library.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -449,7 +449,7 @@ namespace System.Threading
449
449
450
450
## C.3 Standard Library Types not defined in ISO/IEC 23271
451
451
452
-
The following types, including the members listed, must be defined in a conforming standard library. (These types might be defined in a future edition of ISO/IEC 23271.) It is expected that many of these types will have more members available than are listed.
452
+
The following types, including the members listed, shall be defined in a conforming standard library. (These types might be defined in a future edition of ISO/IEC 23271.) It is expected that many of these types will have more members available than are listed.
453
453
454
454
A conforming implementation may provide `Task.GetAwaiter()` and `Task<TResult>.GetAwaiter()` as extension methods.
An *implicity_typed_local_variable_declaration* introduces a single local variable, *identifier*. The *expression* or *variable_reference*must have a compile-time type, `T`. The first alternative declares a variable with type `T` and an initial value of *expression*. The second alternative declares a ref variable with type `ref T` and an initial value of `ref`*variable_reference*.
369
+
An *implicity_typed_local_variable_declaration* introduces a single local variable, *identifier*. The *expression* or *variable_reference*shall have a compile-time type, `T`. The first alternative declares a variable with type `T` and an initial value of *expression*. The second alternative declares a ref variable with type `ref T` and an initial value of `ref`*variable_reference*.
370
370
371
371
> *Example*:
372
372
>
@@ -431,7 +431,7 @@ local_variable_initializer
431
431
432
432
An *explicity_typed_local_variable_declaration* introduces one or more local variables with the specified *type*.
433
433
434
-
If a *local_variable_initializer* is present then its type must be appropriate according to the rules of simple assignment ([§12.21.2](expressions.md#12212-simple-assignment)) or array initialization ([§17.7](arrays.md#177-array-initializers)) and its value is assigned as the initial value of the variable.
434
+
If a *local_variable_initializer* is present then its type shall be appropriate according to the rules of simple assignment ([§12.21.2](expressions.md#12212-simple-assignment)) or array initialization ([§17.7](arrays.md#177-array-initializers)) and its value is assigned as the initial value of the variable.
435
435
436
436
#### 13.6.2.4 Ref local variable declarations
437
437
@@ -449,7 +449,7 @@ ref_local_variable_declarator
449
449
;
450
450
```
451
451
452
-
The initializing *variable_reference*must have type *type* and meet the same requirements as for a *ref assignment* ([§12.21.3](expressions.md#12213-ref-assignment)).
452
+
The initializing *variable_reference*shall have type *type* and meet the same requirements as for a *ref assignment* ([§12.21.3](expressions.md#12213-ref-assignment)).
453
453
454
454
If *ref_kind* is `ref readonly`, the *identifier*(s) being declared are references to variables that are treated as read-only. Otherwise, if *ref_kind* is `ref`, the *identifier*(s) being declared are references to variables that shall be writable.
455
455
@@ -561,7 +561,7 @@ Grammar note: When recognising a *local_function_body* if both the *null_conditi
A *try_statement* consists of the keyword `try` followed by a *block*, then zero or more *catch_clauses*, then an optional *finally_clause*. There must be at least one *catch_clause* or a *finally_clause*.
1599
+
A *try_statement* consists of the keyword `try` followed by a *block*, then zero or more *catch_clauses*, then an optional *finally_clause*. There shall be at least one *catch_clause* or a *finally_clause*.
1600
1600
1601
1601
In an *exception_specifier* the *type*, or its effective base class if it is a *type_parameter*, shall be `System.Exception` or a type that derives from it.
Copy file name to clipboardExpand all lines: standard/structs.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -518,8 +518,8 @@ The safe-context records which context a value may be copied into. Given an assi
518
518
519
519
There are three different safe-context values, the same as the ref-safe-context values defined for reference variables ([§9.7.2](variables.md#972-ref-safe-contexts)): **declaration-block**, **function-member**, and **caller-context**. Thesafe-contextofanexpressionconstrainsitsuseasfollows:
0 commit comments