Я пытаюсь создать интерфейс, который имеет свойство Id
, а затем реализует IEquatable
с использованием этого идентификатора.
Однако класс, реализующий промежуточный интерфейс, выдает ошибку, что он не реализует IEquatable
.
Я предполагаю, что такого типа функциональности просто не существует, но я изо всех сил пытаюсь описать, что именно эта функциональность является , и найти любые обходные пути для того, что я хочу сделать.
То, что я хочу сделать, - это позволить классам просто реализовать IntermediateInterface
и немедленно быть приравненными друг к другу через свойство Id
, требуемое этим интерфейсом.
Вот код в виде текста:
public interface IntermediateInterface<T> : IEquatable<T>
where T : IntermediateInterface<T>
{
int Id { get; set; }
public new bool Equals(T other)
{
return Id.Equals(other.Id);
}
}
public class ActualType : IntermediateInterface<ActualType> {
public int Id { get; set; }
}
Вот текст ошибки :
Error CS0535 'ActualType' does not implement interface member 'IEquatable<ActualType>.Equals(ActualType)'
Вот скриншот из visual studio :
