icomparable

    3熱度

    3回答

    我試圖實現類似於以下代碼片段的內容。 由於紅色線表示Math.Min爲IComparable<T>似乎並沒有工作。我需要爲這個通用類使用Math.Min或Math.Max。 T將是int或double或decimal類型。 我怎麼能輕鬆解決這個問題?

    0熱度

    3回答

    我正在開發一個基於模板的Java類實現各種樹結構(如標準二叉樹,紅黑樹或B樹)。我的想法是讓它像Java Collections中的各種列表一樣完成。這是一個接口類,然後由指定的樹進行擴展。不過,我打了一個奇怪的問題,在牆上: BSTree.java:12: error: BSTree is not abstract and does not override abstract method s

    1熱度

    2回答

    我想下面的類轉換從Java到C#: public class ValueComparator implements Comparator{ @Override public int compare(Object ob1, Object ob2){ int retval = 0; if (ob1 instanceof DataCol && ob2 ins

    7熱度

    1回答

    好的,我有一個簡單的IEnumerable<HtmlString> things,我想把它分成四個相等的組。 var quarter = things.Count()/4; 應該做的伎倆,而是我得到這個funkiness: 服務器錯誤 '/' 應用。至少有一個對象必須實現 IComparable。說明:在執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤 以獲取有關該錯誤的更多信息以及源自

    4熱度

    1回答

    我對方差的經驗很少,但在閱讀了一段時間後,我相信至少理解了基本概念(即方差描述了兩種類型的關係和這兩種類型的關係類似的預測)之間的關係。但是,我似乎無法理解定義爲逆變的意義或好處。乍一看,這實際上似乎阻礙了子類型之間的可比性。我希望有人能夠對此事發表一些看法。

    1熱度

    1回答

    如果我理解正確,IComparable和IComparable<T>旨在允許一個自然人或總訂貨超過一組類型的定義。在任一情況下,通過CompareTo(Object)或CompareTo(T)定義的關係必須是自反,對稱,和傳遞。 當應用於單一類型或類型甚至是整個體系(假設那些更多派生類型不需要影響關係的定義),這一切都非常好,很好,非常適用。然而,一旦一個亞型引入狀態應影響其在其從中衍生的那些類型

    5熱度

    3回答

    誰能給我解釋一下什麼是錯在下面的類聲明。該錯誤是以下內容: 錯誤CS0176:靜態成員`的Object.Equals(對象,對象)」不能 與實例引用訪問,具有類型名 代替 限定它我無法看到我在使用實例引用的位置。 對不起,我的錯。我發了一個不完整的問題。 只是爲了保持完整性,Idetifier類只是以下幾點:使用EqualityComparer出現,是由於複製和粘貼錯誤(對不起你們,太多的通用代碼

    2熱度

    1回答

    我有一堆類型實現IComparable<T>。因爲這些類型實現該接口,這是有道理的,提供以下重載: /// <summary>Equality comparison operator.</summary> /// <param name="lhs">The left hand side.</param> /// <param name="rhs">The right hand side.</p

    4熱度

    3回答

    我與double[]做在C#中的一些統計操作(.NET 4)的CompareTo行爲,然後我發現CompareTo方法和double.NaN一些奇怪的行爲。當我嘗試這種代碼: double.NaN.CompareTo(double.NegativeInfinity) //returns -1 這意味着double.NaN比double.NegativeInfinity更小!任何人都可以解釋爲什

    2熱度

    2回答

    我試圖做一個泛型類。有沒有辦法制定一個約束,以便只有實現了IComparable的對象才能被傳遞到我的泛型中。例如: public class MyClass<T> { } public class MyFooClass { } public class MyComparableFooClass : IComparable { public int Compare(M