2013-08-22 150 views
0

我得到這個消息,因爲我寫了實現了IComparable類:不實現接口成員'System.Icomparable.CompareTo(object)'?

class Person: IComparable<Person> 
    { 
     public int age{get;set;} 
     public String name { get; set; } 

     int IComparable.CompareTo(Person p) 
     { 
      if (this.age > p.age) 
       return 1; 
      else if (this.age == p.age) 
       return 0; 
      else 
       return -1; 

     } 

    } 

不能搞清楚什麼是錯誤的話,任何人有任何好的想法?

P.S.,我改變帕拉姆爲對象,但仍然沒有工作

回答

4

方法聲明不放過一般的參數。它需要

int IComparable<Person>.CompareTo(Person p) 

沒有一般的參數,編譯器認爲你試圖實現非泛型接口IComparable

+0

還是得到了同樣的錯誤 – user1804033

+0

@ user1804033什麼樣的錯誤是什麼呢?你提供的代碼示例編譯得很好,如果你做了我建議的更改(自己驗證) – JaredPar

+0

工作!我開始程序後錯誤消失了,非常感謝你! 順便說一句,當實現接口時,我應該總是把InterfaceName.Method()? – user1804033

0

這是您的實現應該是什麼樣子。

public int CompareTo(object obj) 
    { 
     Person p = obj as Person; 
     if (this.age > p.age) 
      return 1; 
     else if (this.age == p.age) 
      return 0; 
     else 
      return -1; 
    } 
+0

嗨,它看起來還沒有工作... – user1804033

3
class Person : IComparable<Person> 
{ 
    public int age { get; set; } 
    public String name { get; set; } 

    public int CompareTo(Person other) 
    { 
     if (age > other.age) 

     { return 1; } 
     if (age == other.age) 
     { return 0; } 
     return -1; 
    } 
} 
相關問題