我正在复制这样一个数组:
var arrayOfMyTypes = new IMyType[1, 2]; //IMyType is an interface
arrayOfMyTypes[0, 0] = new MyType(); // that MyType implements
arrayOfMyTypes[0, 1] = new MyType();
var xRange = arrayOfMyTypes.GetLength(0);
var yRange = arrayOfMyTypes.GetLength(1);
var copy = new IMyType[xRange, yRange];
for (var xIdx = 0; xIdx < xRange; xIdx++)
{
for (var yIdx = 0; yIdx < yRange; yIdx++)
{
copy[xIdx, yIdx] = arrayOfMyTypes[xIdx, yIdx];
}
}
Assert.That(copy, Is.EqualTo(arrayOfMyTypes)); // true
Assert.That(copy, Is.Not.EqualTo(arrayOfMyTypes)); // false
要清楚,我希望元素相同,数组不同。那么为什么Nunit认为arrayOfMyTypes
和copy
是相同的?
答案 0 :(得分:2)
如果您想比较参考而不是值,请使用Is.SameAs
:
Assert.That(copy, Is.SameAs(arrayOfMyTypes)); // false