gpt4 book ai didi

c# - == 和等于。为什么复杂?

转载 作者:太空狗 更新时间:2023-10-30 00:03:18 27 4
gpt4 key购买 nike

<分区>

使用 == 运算符我可以这样做:

int a = 10;
int b = 10;
a==b //true

在这种情况下,C# 做出编译时决定,并且没有虚拟行为发挥作用。

但是,如果我使用:

object a = 10;
object b = 10;
a == b //false

结果为假,因为object是一个类(引用类型),ab分别引用堆上不同的装箱对象.

要解决它我应该这样做:

object a = 10;
object b = 10;
a.Equals (b) // True

因为 Equals 是一个虚方法,它在运行时根据对象的实际类型进行解析。

我的问题是:

为什么 C# 的设计者没有通过使 == 虚拟化并在功能上与 Equals 完全相同来避免这个问题?

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com