#640 – Method Names that You Cannot Use
August 2, 2012 Leave a comment
The C# compiler will sometimes generate new methods in the IL, as an implementation of a particular language element.
For example, assume that you define a Name property:
public string Name { get; set; }
The IL that is generated as the implementation of this property will include the two methods get_Name and set_Name.
Because the compiler generates methods named set_XYZ and get_XYZ, where XYZ is a property that you define, you cannot implement methods having these same names.
The full list of method names that you cannot use in your code is:
- get_XYZ, set_XYZ (if your class contains a property named XYZ)
- get_Item, set_Item (if your class defines an indexer with a matching parameter list)
- Finalize (if your class defines a destructor)
- add_XYZ(T), remove_XYZ(T) (if your class defines an event named XYZ of type T)