1 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
如錯(cuò)誤信息所示:
There is no boxing conversion or type parameter conversion from 'TKey' to 'System.IEquatable'
在抽象類級(jí)別再次指定約束將解決問(wèn)題:
public abstract class BaseEntity<TKey> : IIdentifiable<TKey> where TKey : IEquatable<TKey>
{
public TKey Id { get; set; }
}
public interface IIdentifiable<TKey> where TKey : IEquatable<TKey>
{
TKey Id { get; set; }
}
那是因?yàn)槌橄箢愔械?Tkey 與接口中的 TKey 不同,因此您應(yīng)該再次指定約束以使其成為相同的裝箱類型。
例如,此代碼也將有效:
public abstract class BaseEntity<TKey2> : IIdentifiable<TKey2> where TKey2 : IEquatable<TKey2>
{
public TKey2 Id { get; set; }
}
public interface IIdentifiable<TKey> where TKey : IEquatable<TKey>
{
TKey Id { get; set; }
}
- 1 回答
- 0 關(guān)注
- 198 瀏覽
添加回答
舉報(bào)