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
函數,它取得一個T
這是IEquatable<T>
。在上面的函數中我調用了Care
函數並傳遞了T
這是int
類型。 int
畢竟是IEquatable<int>
。
我在做什麼錯?有沒有解決問題的方法?