5

在 F# 中:

[0] = [0] = true

通常在 C# 或 .NET BCL 中:

StructuralComparisons.Equals(new int[] { 0 }, new int[] { 0 }) == false

为什么?


后记:

我认为我有“正确的” Equals 的原因是因为事实证明这是真的:

var a = new { X = 3, Y = new { Z = -1 } };
var b = new { X = 3, Y = new { Z = -1 } };

StructuralComparisons.Equals(a, b) == true;
4

1 回答 1

8

那是因为您object.Equals(objA, objB)将无法处理这种比较。

而是这样做:

StructuralComparisons.StructuralEqualityComparer.Equals(..., ...)
于 2015-08-19T12:29:57.167 回答