public interface ILovable<T> where T : IEquatable<T>
{
T Care(T t);
}
public class Me : ILovable<int>
{
public int Care(int i)
{
return i;
}
}
说我有以上。现在下面的功能失败:
private static void Colour<T>(ILovable<T> me) where T : IEquatable<T>
{
var z = me.Care(1); //cannot convert from 'int' to 'T'
}
上面的代码有什么问题?ILovable<T>
有一个Care
函数,它吸收 a T
which is IEquatable<T>
。在上面的函数中,我调用了相同的Care
函数并传递T
了int
类型。int
毕竟是IEquatable<int>
。
我究竟做错了什么?有什么办法可以解决吗?