bar*_*lop 9 c# operator-overloading
在C#中为什么要Double覆盖==却Int32没有,影响是什么?
我看一下msdn库.
我看到这个关于double的链接在这里没有说太多(虽然我理解double是Double对象的简写)..它没有显示方法的例子..
但这个链接System.Double确实提到了我在这里寻找的东西
它显示Equality运算符采用双精度,因此过载.
Image对于DoubleMSDN,然后在Methods(列出字段之前)之后,它显示运算符,并显示等于运算符被覆盖

我可以点击"操作员"下的"平等",它说
public static bool operator ==(
double left,
double right
)
Run Code Online (Sandbox Code Playgroud)
而当我在MSDN中查看System.Int32
Image For Int32时

在该图像中看到,(看到的页面System.Int32)看起来==没有被覆盖.
为什么,这有什么后果?
Art*_*kel -1
使用 ILSpy 我可以看到它Double.Equals有一些额外的逻辑来检查所比较的值是否为 NaN。
ILSpy 还将正文反编译==为:
public static bool operator ==(double left, double right)
{
return left == right;
}
Run Code Online (Sandbox Code Playgroud)
其他运营商也遵循相同的模式,这很奇怪。也许是反编译错误?