CATEGORII DOCUMENTE |
Methods, instance constructors, indexers, and operators are characterized by their signatures:
The signature of a method consists of the name of the method and the type and kind (value, reference, or output) of each of its formal parameters. The signature of a method specifically does not include the return type, nor does it include the params modifier that may be specified for the right-most parameter.
The signature of an instance constructor consists of the type and kind (value, reference, or output) of each of its formal parameters. The signature of an instance constructor specifically does not include the params modifier that may be specified for the right-most parameter.
The signature of an indexer consists of the type of each of its formal parameters. The signature of an indexer specifically does not include the element type.
The signature of an operator consists of the name of the operator and the type of each of its formal parameters. The signature of an operator specifically does not include the result type.
Signatures are the enabling mechanism for overloading of members in classes, structs, and interfaces:
Overloading of methods permits a class, struct, or interface to declare multiple methods with the same name, provided their signatures are unique.
Overloading of instance constructors permits a class or struct to declare multiple instance constructors, provided their signatures are unique.
Overloading of indexers permits a class, struct, or interface to declare multiple indexers, provided their signatures are unique.
Overloading of operators permits a class or struct to declare multiple operators with the same name, provided their signatures are unique.
The following example shows a set of overloaded method declarations along with their signatures.
interface
ITest
Note that the ref and out parameter modifiers (10.5.1) are part of a signature. Thus, F(int), F(ref int), and F(out int) are all unique signatures. Also note that the return type and the params modifier are not part of a signature, so it is not possible to overload solely based on return type or on the inclusion or exclusion of the params modifier. Because of these restrictions, the declarations of the methods F(int) and F(string[]) in the example above are in error.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 934
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved