Здравствуйте, hi_octane, Вы писали:
_>Там же ещё есть record struct, которые вообще ValueType.
Как-то раньше в структурах удавалось Equals переопределять ведь.
_>Поэтому переопределение в рекордах немножко своё. Нужно сделать Equals от IEquatable, но без override, компилятор поймёт:
_>_>public sealed record R(int x, int[] xs)
_>{
_> public bool Equals(R? other)
_> => other.x == x && other.xs.SequenceEqual(xs);
_>}
_>
_>И тогда на == будет True
Что-то не очень понял. Правда вот так понял:
record R(int X, int[] Xs)
{
public virtual bool Equals(R? other) => other != null && other.X == X && other.Xs.SequenceEqual(Xs);
public override int GetHashCode()
{
return X;
}
}
Но в любом случае все это выглядит странным. А что что не реализована эквивалентность для вложенных последовательностей — это вообще лажа какая-то.