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
- `D` and `M` arebothreturns-by-ref, anidentityconversionexistsbetweenthereturntypeof `M` andthereturntypeof `D`, andbothhavethesame*ref_kind*.
103
103
@@ -262,9 +262,9 @@ Once instantiated, a delegate instance always refers to the same invocation list
262
262
263
263
## 20.6 Delegate invocation
264
264
265
-
C# providesspecialsyntaxfor invoking a delegate. When a non-`null` delegate instance whose invocation list contains one entry, is invoked, it invokes the one method with the same arguments it was given, and returns the same value as the referredto method. (See [§12.8.10.4](expressions.md#128104-delegate-invocations) for detailed information on delegate invocation.) Ifanexceptionoccursduringtheinvocationofsuchadelegate, andthatexceptionisnotcaughtwithinthemethodthatwasinvoked, thesearchfor an exception catch clause continues in the method that called the delegate, as if that method had directly called the method to which that delegate referred.
265
+
C# providesspecialsyntaxfor invoking a delegate. When a non-`null` delegate instance whose invocation list contains one entry is invoked, it invokes the one method with the same arguments it was given and returns the same value as the referred-to method. (See [§12.8.10.4](expressions.md#12894-delegate-invocations) for detailed information on delegate invocation.) Ifanexceptionoccursduringtheinvocationofsuchadelegate, andthatexceptionisnotcaughtwithinthemethodthatwasinvoked, thesearchfor an exception catch clause continues in the method that called the delegate, as if that method had directly called the method to which that delegate referred.
266
266
267
-
Invocation of a delegate instance whose invocation list contains multiple entries, proceeds by invoking each of the methods in the invocation list, synchronously, in order. Each method so called is passed the same set of arguments as was given to the delegate instance. If such a delegate invocation includes reference parameters ([§15.6.2.3.3](classes.md#156233-reference-parameters)), each method invocation will occur with a reference to the same variable; changes to that variable by one method in the invocation list will be visible to methods further down the invocation list. If the delegate invocation includes output parameters or a return value, their final value will come from the invocation of the last delegate in the list. If an exception occurs during processing of the invocation of such a delegate, and that exception is not caught within the method that was invoked, the search for an exception catch clause continues in the method that called the delegate, and any methods further down the invocation list are not invoked.
267
+
Invocation of a delegate instance whose invocation list contains multiple entries proceeds by invoking each of the methods in the invocation list synchronously, in order. Each method so called is passed the same set of arguments as was given to the delegate instance. If such a delegate invocation includes reference parameters ([§15.6.2.3.3](classes.md#156233-reference-parameters)), each method invocation will occur with a reference to the same variable; changes to that variable by one method in the invocation list will be visible to methods further down the invocation list. If the delegate invocation includes output parameters or a return value, their final value will come from the invocation of the last delegate in the list. If an exception occurs during processing of the invocation of such a delegate, and that exception is not caught within the method that was invoked, the search for an exception catch clause continues in the method that called the delegate, and any methods further down the invocation list are not invoked.
268
268
269
269
Attempting to invoke a delegate instance whose value is `null` results in an exception of type `System.NullReferenceException`.
Copy file name to clipboardExpand all lines: standard/interfaces.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -911,7 +911,7 @@ Notable implications of the interface-mapping algorithm are:
911
911
> }
912
912
> ```
913
913
>
914
-
>the `ICloneable.Clone` memberof `C` becomestheimplementationof `Clone` in‘ICloneable’becauseexplicitinterfacemember implementations take precedence over other members.
914
+
>the `ICloneable.Clone` memberof `C` becomestheimplementationof `Clone` in`ICloneable`becauseexplicitinterfacemember implementations take precedence over other members.
Copy file name to clipboardExpand all lines: standard/structs.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -159,7 +159,7 @@ Structs differ from classes in several important ways:
159
159
160
160
Structs are value types ([§8.3](types.md#83-value-types)) and are said to have value semantics. Classes, on the other hand, are reference types ([§8.2](types.md#82-reference-types)) and are said to have reference semantics.
161
161
162
-
A variable of a struct type directly contains the data of the struct, whereas a variable of a class type contains a reference to an object that contains the data. When a struct `B` contains an instance field of type `A` and `A` is a struct type, it is a compile-time error for `A` to depend on `B` or a type constructed from `B`. `A struct X`*directly depends on* a struct `Y` if `X` contains an instance field of type `Y`. Given this definition, the complete set of structs upon which a struct depends is the transitive closure of the *directly depends on* relationship.
162
+
A variable of a struct type directly contains the data of the struct, whereas a variable of a class type contains a reference to an object that contains the data. When a struct `B` contains an instance field of type `A` and `A` is a struct type, it is a compile-time error for `A` to depend on `B` or a type constructed from `B`. A struct `X`*directly depends on* a struct `Y` if `X` contains an instance field of type `Y`. Given this definition, the complete set of structs upon which a struct depends is the transitive closure of the *directly depends on* relationship.
0 commit comments