我正在审查一些原始类型的实现,特别是.NET Reference Source中的System.Double
,我偶然发现了这个:
[System.Runtime.Versioning.NonVersionable]
public static bool operator ==(Double left, Double right) {
return left == right;
}
[System.Runtime.Versioning.NonVersionable]
public static bool operator !=(Double left, Double right) {
return left != right;
}
我知道这种自引用运算符实现可能是一个反编译器问题,如here所述,但我的印象是参考源中显示的代码是实际的源代码,而不是a的输出。反编译。
谁能解释一下这里真的发生了什么?