Reserved member names
To facilitate the underlying C# run-time implementation, for each source member declaration that is a property, event, or indexer, the implementation must reserve two method signatures based on the kind of the member declaration, its name, and its type. It is a compile-time error for a program to declare a member whose signature matches one of these reserved signatures, even if the underlying run-time implementation does not make use of these reservations. The reserved names do not introduce declarations, thus they do not participate in member lookup. However, a declaration’s associated reserved method signatures do participate in inheritance (§10.3.3), and can be hidden with the new modifier (§10.3.4). The reservation of these names serves three purposes: · To allow the underlying implementation to use an ordinary identifier as a method name for get or set access to the C# language feature. · To allow other languages to interoperate using an ordinary identifier as a method name for get or set access to the C# language feature. · To help ensure that the source accepted by one conforming compiler is accepted by another, by making the specifics of reserved member names consistent across all C# implementations. The declaration of a destructor (§10.13) also causes a signature to be reserved (§10.3.9.4).
|