Re: [問題] template語法問題

看板C_Sharp作者 (眩惑之龍)時間17年前 (2009/02/24 21:40), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《Cloud (抓不住...)》之銘言: : 下述是我學習C#的疑問 : public class TreeNode<ItemType> : { : public ItemType m_Value; // member : public TreeNode(ItemType val){m_Value = val; } // Ctor : public void comapre(ItemType v ) : { : if( m_Value > v ) // 編譯錯誤,這裡的值會無法比較,即使 : // ItemType為int : { : // some operation : } : } : } : 請問該如何實做?? 是否需要ICompariable ?? IComparable是用來排序的,跟你的寫法無關,因為你直接用>符號來比較。 你的ItemType是不是Int不重要。 重要的是如果你要自定類別,那麼Operator是一定要重寫的。 不然「int > int」這樣編譯器看得懂,「科科 > 科科」就看不懂了, 因為你沒有定義自定類別要怎麼比大小。 但是重寫 > 的語法我忘了,科科 public static bool operator > (科科 a, 科科 b) { return a.value > b.value; } 我憑印象亂寫的,請查書確定一下。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.20.113

02/24 22:03, , 1F
請問一下,我要比的是 ItemType, 並不是自訂定的TreeNode
02/24 22:03, 1F

02/24 22:04, , 2F
所以" int > int "應該可行,而不需 overload opeator>
02/24 22:04, 2F
文章代碼(AID): #19e_ZU-D (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #19e_ZU-D (C_Sharp)