當我投入int並浮動到對象並比較它們時,相等總是爲false。爲什麼?爲什麼equals在物品投射到物體時不能正常工作?
float f = 0.0f;
int i = 0;
Console.WriteLine(f.Equals(i)); // true
Console.WriteLine(i.Equals(f)); // false
Console.WriteLine(i == f); // true
Console.WriteLine("----------------");
object obf = f;
object obi = i;
Console.WriteLine(obf.Equals(obi)); // false
Console.WriteLine(obi.Equals(obf)); // false
Console.WriteLine(obi == obf); // false
Console.WriteLine("----------------");
更新: 這不是同一類型
int i1 = 1;
int i2 = 1;
object oi1 = i1;
object oi2 = i2;
Console.WriteLine(oi1.Equals(oi2)); // true
Console.WriteLine(oi2.Equals(oi1)); // true
是否在編譯時處理隱式轉換? –
@CharlesLambert:是的。看看IL,你會看到它正在執行。 –