5

我知道ctor, cctor, 属性/索引器前缀: get_, set_, 事件管理前缀: add_, remove_. 我见过raise_一次或两次前缀(不记得在哪里)。

.Net 级别(ECMA 规范)是否存在明确的列表?如果是,它在哪里?

它是否是一个“开放列表”,以便任何(新)语言都可以为其(未来)需求定义它们?

4

1 回答 1

3

用户定义的运算符是另一个例子。像 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 
}

没有详尽的列表,语言实现可以自由地使用该属性来隐藏它们的粘合剂。例如,您可能在 VB.NET 编译器使用 RaiseEvent 访问器生成的代码上看到了 raise_ 前缀。

于 2010-09-26T17:22:06.353 回答