我有这段代码检查两个变量的引用,我遇到了这种情况,这有点令人困惑:
string first = "10";
object second = 10.ToString();
dynamic third = second;
Console.WriteLine($"{first == second} {first == third}");
Run Code Online (Sandbox Code Playgroud)
结果是:False True
我的第一个问题是为什么第一个和第三个引用相等?如果第三个变量等于第二个变量,那应该是False
因为它们的对象引用不相等。
当我将值更改为"1"
如下所示时,我感到很困惑:
string first = "1";
object second = 1.ToString();
dynamic third = second;
Console.WriteLine($"{first == second} {first == third}");
Run Code Online (Sandbox Code Playgroud)
那么结果就变成了:True True
为什么会出现这种情况?