Я заметил, что два объекта записи того же типа имеют свойство временного метки, которое является массивом байтов, не распознаются как равные, несмотря на все байты, где одинаковые.
Код: Выделить всё
public record C
{
public byte[] Timestamp {get; set;}
}
public virtual bool Equals(C other)
{
return (...) && EqualityComparer.Default.Equals(k__BackingField, other.k__BackingField);
}
< /code>
Использует EqualityComprer, который не использует SequenceEdavals, поэтому результат заключается в том, что две записи с одинаковым содержанием не равны. < /p>
using System.Collections.Generic;
using System.Diagnostics;
var a = new byte[1] { 1 };
var b = new byte[1] { 1 };
var isEqual = EqualityComparer.Default.Equals(a, b);
Debug.Print(isEqual.ToString()); // false
< /code>
Я думал, что записи будут реализовать равенство на основе стоимости для каждого свойства, но это, очевидно, по -прежнему основано на основе массивов, в частности. Я не на том пути или это так?
Подробнее здесь: https://stackoverflow.com/questions/649 ... s-like-arr
Мобильная версия