2010-09-26 2 views
4

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

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

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

ответ

1

Определенные пользователем операторы будут еще одним примером. Как System.String.op_Equality (оператор ==):

.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 
} 

Там не исчерпывающий список, реализации языка могут использовать атрибут, чтобы скрыть их клей. Вероятно, вы видели префикс raise_ на код, сгенерированный компилятором VB.NET, например, с помощью Access RaiseEvent.