相关疑难解决方法(0)

使用 == 运算符比较两个对象

我有这段代码检查两个变量的引用,我遇到了这种情况,这有点令人困惑:

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

为什么会出现这种情况?

.net c# .net-6.0

55
推荐指数
2
解决办法
3593
查看次数

标签 统计

.net ×1

.net-6.0 ×1

c# ×1