ECMA-334 C# Language Specification17.5: Methods |
A method is a member that implements a computation or action that can be performed by an object or class. Methods are declared using method-declarations:
method-header
method-body
attributes
opt method-modifiers
opt return-type
member-name
(
formal-parameter-list
opt )
method-modifier
method-modifiers
method-modifier
type
identifier
interface-type
.
identifier
block
;
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.
A declaration has a valid combination of modifiers if all of the following are true:
The return-type
of a method declaration specifies the type of the value computed and returned by the method. The return-type
is void if the method does not return a value.
The member-name
specifies the name of the method. Unless the method is an explicit interface member implementation (20.4.1), the member-name
is simply an identifier. For an explicit interface member implementation, the member-name
consists of an interface-type
followed by a "." and an identifier.
The optional formal-parameter-list
specifies the parameters of the method (17.5.1).
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).
For abstract and extern methods, the method-body
consists simply of a semicolon. For all other methods, the method-body
consists of a block, which specifies the statements to execute when the method is invoked.
The name and the formal parameter list of a method define the signature (10.6) of the method. Specifically, the signature of a method consists of its name and the number, modifiers, and types of its formal parameters. The return type is not part of a method's signature, nor are the names of the formal parameters.
The name of a method must differ from the names of all other non-methods declared in the same class. In addition, the signature of a method must differ from the signatures of all other methods declared in the same class.
In This Section: