2
我有一個接口:Рroblem與通用接口
interface IKey<TId, TName>
where TId: IEquatable<TId>
where TName: IEquatable<TName>
{
TId Id { get; set; }
TName Name { get; set; }
}
然後,我實現艾奇是這樣的:
class Item : IKey<int, string>
{
int Id { get; set; }
string Name { get; set; }
//...
}
我有總彙應該與這些項目合作
class ItemCollection<T>
where T : IKey<TId, TName> //Any type that implements IEquatable<...>
where TId: IEquatable<TId>
where TName: IEquatable<TName>
{
//...
}
問題是它不起作用。有沒有一種方法可以正確地做到這一點?
有內部消除IEquatable
另一種實現方式,使用IKey<out TId, out TName>
和IKey<object, object>
但它不具有價值的工作類型和使用Object.Equals
。