“没有从'object'到'System.IEquatable <object>'的隐式引用转换。”

时间:2015-08-13 12:51:14

标签: c# generics iequatable

我收到了这个错误:

objectSystem.IEquatable<object>没有隐式引用转换。

当我尝试创建Generic类

MyClass<T, V> where T : IEquatable<T> 

将'type parameter'作为“object,object”:

MyClass<object, object> mc = new MyClass<object, object>(t, t)

和构造函数参数(t, t)是其他类(Test t=new Test())的对象。

具有IEquatable<T>约束的通用方法的类'Test':

public bool Equals<T, V>(T tp,V vp) where T : IEquatable<Test>

Generic类有

IEquatable<T> 

约束。

1 个答案:

答案 0 :(得分:0)

您在通用类签名中表明T必须实施IEquatable<T>,然后尝试将object用作T的类型参数。

你真的想要哪一个?您是否希望强制T实现此接口?或者您想要使用几乎任何类型的T

对于第一种情况,使用object以外的内容作为T类型参数,或者删除第二种情况下的约束。