我已经从使用IComparable变成了IComparable<Artist>,但是我得到了错误
'RecordCollection.Artist‘不实现接口成员’System.IComparable.CompareTo(对象)‘
class Artist : IComparable<Artist>我添加了一个CompareTo方法。
不知道这个错误意味着什么,任何描述我为什么要得到这个的帮助都是很好的。
class Artist : IComparable<Artist>
{
private String Name;
private int NoMem;
public Artist(string Name, int NoMem)
{
this.Name = Name;
this.NoMem = NoMem;
}
public int CompareTo(Artist other)
{
if (other == null) return 1;
else
return 0;
}
}新的艺术家AVL树
AVLTree<Artist> treeAVL = new AVLTree<Artist>();发布于 2013-03-15 12:38:18
您必须确保在其中定义Artist的项目没有错误地编译。否则,您的其他项目将不会进行更改,仍然认为Artist实现了IComparable而不是IComparable<T>。当您得到编译时错误时:
'RecordCollection.Artist‘不实现接口成员’System.IComparable.CompareTo(对象)‘
也不需要在技术上实现CompareTo(object),也不会解决您的问题。
发布于 2013-03-15 12:34:05
如果您复制和粘贴了该错误,那么您应该像这样实现CompareTo:
public int CompareTo(object other)
{
if (other == null) return 1;
else
return 0;
}发布于 2013-03-15 12:34:11
信息:
'RecordCollection.Artist‘不实现接口成员’System.IComparable.CompareTo(对象)‘
显然,它认为类仍然声明它在某个地方实现了IComparable。您可能希望找到它(它可以通过partial class在另一个文件中)。然而,我个人认为包括非类型支持是正确的.我只想补充一句:
int IComparable.CompareTo(object obj)
{
return CompareTo(obj as Artist);
}https://stackoverflow.com/questions/15432227
复制相似问题