Table of Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Notes DownloadECMA-334 C# Language Specification


17 Classes
17.5 Methods
Paragraph 11 A method is a member that implements a computation or action that can be performed by an object or class. 2 Methods are declared using method-declarations: method-declaration : method-header method-body method-header : attributesopt method-modifiersopt return-type member-name ( formal-parameter-listopt ) method-modifiers : method-modifier method-modifiers method-modifier method-modifier : new public protected internal private static virtual sealed override abstract extern return-type : type void member-name : identifier interface-type . identifier method-body : block ;
Paragraph 21 A method-declaration may include a set of attributes (§24) and a valid combination of the four access modifiers (§17.2.3), the new (§17.2.2), static (§17.5.2), virtual (§17.5.3), override (§17.5.4), sealed (§17.5.5), abstract (§17.5.6), and extern (§17.5.7) modifiers.
Paragraph 31 A declaration has a valid combination of modifiers if all of the following are true: - 2 The declaration includes a valid combination of access modifiers (§17.2.3).
- 3 The declaration does not include the same modifier multiple times.
- 4 The declaration includes at most one of the following modifiers: static, virtual, and override.
- 5 The declaration includes at most one of the following modifiers: new and override.
- 6 If the declaration includes the abstract modifier, then the declaration does not include any of the following modifiers: static, virtual, or extern.
- 7 If the declaration includes the private modifier, then the declaration does not include any of the following modifiers: virtual, override, or abstract.
- 8 If the declaration includes the sealed modifier, then the declaration also includes the override modifier.
Paragraph 41 The return-type of a method declaration specifies the type of the value computed and returned by the method. 2 The return-type is void if the method does not return a value.
Paragraph 51 The member-name specifies the name of the method. 2 Unless the method is an explicit interface member implementation (§20.4.1), the member-name is simply an identifier. 3 For an explicit interface member implementation, the member-name consists of an interface-type followed by a "." and an identifier.
Paragraph 61 The optional formal-parameter-list specifies the parameters of the method (§17.5.1).
Paragraph 71 The return-type and each of the types referenced in the formal-parameter-list of a method must be at least as accessible as the method itself (§10.5.4).
Paragraph 81 For abstract and extern methods, the method-body consists simply of a semicolon. 2 For all other methods, the method-body consists of a block, which specifies the statements to execute when the method is invoked.
Paragraph 91 The name and the formal parameter list of a method define the signature (§10.6) of the method. 2 Specifically, the signature of a method consists of its name and the number, modifiers, and types of its formal parameters. 3 The return type is not part of a method's signature, nor are the names of the formal parameters.
Paragraph 101 The name of a method must differ from the names of all other non-methods declared in the same class. 2 In addition, the signature of a method must differ from the signatures of all other methods declared in the same class. |
Jagger Software Ltd |
Company # 4070126 |
VAT # 762 5213 42 |

