簡體   English   中英

在哪里可以找到IComparable的CompareTo方法定義?

[英]Where can I find the IComparable's CompareTo method definition?

在哪里可以找到CompareTo方法定義?

如下面的代碼所示,我可以通過實現IComparable接口來使用CompareTo方法。 但是我在Utilities類中沒有為CompareTo方法給出任何定義。 我知道這是一個非常瑣碎的問題。 但是我不理解類如何在不提供其方法實現的情況下實現接口。

public class Utilities<T> where T : IComparable
    {
        public T Max(T a, T b)  
        {
            return a.CompareTo(b) > 0 ? a : b;
        }
    }

您的Utilities類未實現IComparable 您是說T必須實現IComparable 如果Utilities要實現IComparable ,它將看起來像這樣:

public class Utilities<T> : IComparable

您無需在Utilities定義CompareTo方法,因為無論T是多少,都應該在T定義它。

例如,您不能將Foo用於T因為Foo沒有實現IComparable

class Foo { 
   // you must add a CompareTo method here in order to use Foo as T
   // you must also add ": IComparable"
}

但是您可以使用stringintfloat因為它們確實實現了IComparable

您使用的是通用類型約束,而不是實現IComparable接口,這意味着T必須從IComparable實現。

如果要實現IComparable接口,則需要在類名之后和where約束關鍵字之前使用:

public class Utilities<T> : IComparable 
    where T : IComparable

{
    public int CompareTo(object obj)
    {

    }

    public T Max(T a, T b)
    {
        return a.CompareTo(b) > 0 ? a : b;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM