Fan*_*ius 3 .net c# struct operators
我可以将一个结构的值分配给另一个结构,并自动复制内存.但是如果我想测试两个结构是否包含相同的数据(就好像我刚刚完成了一个赋值),我必须对它进行显式编码.这是为什么?似乎框架应该具有operator == for structs的默认实现.
Sco*_*ski 6
默认实现ValueType.Equals完全符合您的要求.所以,如果你这样做:
ValueType.Equals
s1 = ...; s2 = ...; s1.Equals(s2);
对"Equals"的调用将进行您正在寻找的自动深度比较.
通常,C#倾向于不使用重载运算符,这可能是它不实现运算符的原因.
而且,从哲学上讲,C#倾向于回避隐式行为,包括隐式生成方法等.
Gab*_*abe 5
该框架具有默认Equals实现.该==运营商是一个C#的功能,你必须自己实现,使用Equals如果你想.
Equals
==
归档时间:
14 年,10 月 前
查看次数:
128 次
最近记录: