Question

I am aware of ctor, cctor, property/indexer prefix: get_, set_, event management prefix: add_, remove_. I have seen a raise_ prefix once or twice (do not remember where).

Does a definitive list exists at the .Net level (ECMA spec.)? If yes where is it?

Is it an "open list" so that any (new) language can define them for its (future) needs?

Was it helpful?

Solution

User defined operators would be another example. Like System.String.op_Equality (operator==):

.method public hidebysig specialname static bool op_Equality(string a, string b) cil managed
{
    .maxstack 8
    L_0000: ldarg.0 
    L_0001: ldarg.1 
    L_0002: call bool System.String::Equals(string, string)
    L_0007: ret 
}

There's no exhaustive list, language implementations are free to use the attribute to hide their glue. You probably saw the raise_ prefix on code generated by the VB.NET compiler using the RaiseEvent accessor for example.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top