首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IComparable<T>没有实现

IComparable<T>没有实现
EN

Stack Overflow用户
提问于 2013-03-15 12:16:17
回答 3查看 1.8K关注 0票数 4

我已经从使用IComparable变成了IComparable<Artist>,但是我得到了错误

'RecordCollection.Artist‘不实现接口成员’System.IComparable.CompareTo(对象)‘

代码语言:javascript
复制
class Artist : IComparable<Artist>

我添加了一个CompareTo方法。

不知道这个错误意味着什么,任何描述我为什么要得到这个的帮助都是很好的。

代码语言:javascript
复制
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树

代码语言:javascript
复制
        AVLTree<Artist> treeAVL = new AVLTree<Artist>();
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-15 12:38:18

您必须确保在其中定义Artist的项目没有错误地编译。否则,您的其他项目将不会进行更改,仍然认为Artist实现了IComparable而不是IComparable<T>。当您得到编译时错误时:

'RecordCollection.Artist‘不实现接口成员’System.IComparable.CompareTo(对象)‘

也不需要在技术上实现CompareTo(object),也不会解决您的问题。

票数 3
EN

Stack Overflow用户

发布于 2013-03-15 12:34:05

如果您复制和粘贴了该错误,那么您应该像这样实现CompareTo

代码语言:javascript
复制
public int CompareTo(object other)
{
    if (other == null) return 1;
        else
    return 0;
}
票数 1
EN

Stack Overflow用户

发布于 2013-03-15 12:34:11

信息:

'RecordCollection.Artist‘不实现接口成员’System.IComparable.CompareTo(对象)‘

显然,它认为类仍然声明它在某个地方实现了IComparable。您可能希望找到它(它可以通过partial class在另一个文件中)。然而,我个人认为包括非类型支持是正确的.我只想补充一句:

代码语言:javascript
复制
int IComparable.CompareTo(object obj)
{
    return CompareTo(obj as Artist);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15432227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档