gpt4 book ai didi

c# - 为什么 C# 能够复制结构的内存但不能测试相等性?

转载 作者:行者123 更新时间:2023-11-30 13:51:01 25 4
gpt4 key购买 nike

我可以将一个结构的值赋给另一个,内存会自动复制。但是如果我想测试两个结构是否包含相同的数据(就像我刚刚完成了一个赋值),我必须明确地编码它。这是为什么?看起来框架应该有一个默认的 operator == for structs 实现。

最佳答案

ValueType.Equals 的默认实现完全符合您的要求。所以如果你这样做:

s1 = ...;
s2 = ...;
s1.Equals(s2);

调用“等于”将执行您正在寻找的自动深度比较。

一般来说,C# 倾向于不使用重载运算符,这可能就是它不实现运算符的原因。

此外,从哲学上讲,C# 倾向于回避隐式行为,包括诸如方法的隐式生成之类的事情。

关于c# - 为什么 C# 能够复制结构的内存但不能测试相等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5254798/

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