Ищете точный список возможных MethodAttributes.SpecialName - PullRequest
5 голосов
/ 26 сентября 2010

Мне известны ctor, cctor, префикс свойства / индексатора: get_, set_, префикс управления событиями: add_, remove_.Я видел префикс raise_ один или два раза (не помню где).

Существует ли окончательный список на уровне .Net (спецификация ECMA)?Если да, где это?

Это «открытый список», чтобы любой (новый) язык мог определить их для своих (будущих) потребностей?

1 Ответ

2 голосов
/ 26 сентября 2010

Определяемые пользователем операторы будут еще одним примером. Как 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 
}

Нет исчерпывающего списка, языковые реализации могут свободно использовать атрибут, чтобы скрыть свои связи. Вы, вероятно, видели префикс Повышение_ в коде, сгенерированном компилятором VB.NET с использованием средства доступа RaiseEvent, например.

...