看板 C_Sharp 關於我們 聯絡資訊
public static TItem 相加<TItem>(TItem 左值, TItem 右值) where TItem: 這裡該填什麼? { return 左值 + 右值; } 希望TItem 「可以運算」 例如:int float double 之類的型別 請問要怎麼限制泛型條件? 已經試過 where TItem:int where TItem:System.Int32 可是都不行...... 如果不行用泛型去解 那勢必得用多載的方式去寫 那又得寫一堆類似的程式碼了....... 寫個程式整天都在面對一堆小改的程式碼 讓我想把word的合併列印拿出來用了........ -- 20330 6/17 - □ (本文已被吃掉) 幹!這梗有毒...救命~~ 20331 6/17 - □ (本文已被吃掉) 〒 〒 20332 1 6/17 - □ (本文已被吃掉) ▼▼▼▼ 20333 XX 6/17 - 囧 (哈哈拎北有毒) \▲▲▲▲\ = ●20334 1 6/17 - □ (本文已被吃掉) 20335 6/17 - □ (本文已被吃掉) 口卡口卡嘗百草 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.27.109.110
remmurds:最簡單的方法 用typeof檢查T的型別 如果不是你要的就丟 08/22 21:12
remmurds:Exception 08/22 21:12
remmurds: TItem 08/22 21:13
SDNiceBoat:那個在執行的時候才會吐ex出來,不太好吧? 囧" 08/22 21:26
pico2k:你完全沒弄懂泛型的觀念... 08/22 23:30
SDNiceBoat:樓上,你是指什麼觀念? 我自修,思路跟想法會跟學校教 08/22 23:35
SDNiceBoat:出來的不一樣..... 08/22 23:35
pico2k:generics的用處是在於指明瓶子裡到底裝了什麼東西... 08/22 23:37
SDNiceBoat:嗯? 什麼意思? 08/22 23:38
pico2k:你還是去用c++吧,c++有提供operator overload 08/22 23:40
pico2k:你想做的東西,C++的operator overload可以達到你要的功能 08/22 23:41
SDNiceBoat:C#也有運算子多載啦..... 但我想做的不是這個 08/22 23:45
SDNiceBoat:我現在在寫類似語法樹的東西,數值可能是int、float 08/22 23:46
SDNiceBoat:、double、decimal甚至Vector2都有可能...... 08/22 23:47
SDNiceBoat:當我讀到 XXX + OOO 的時候,我必須呼叫一個遞迴去把他 08/22 23:48
SDNiceBoat:們加起來,問題是.... 我必須得一個個寫多載嗎? 那我漏 08/22 23:49
SDNiceBoat:掉的不就沒辦法作運算了? 而且也是為了節省程式碼的份 08/22 23:49
SDNiceBoat:量,因為還有+ - * / % 之類的要寫...... 08/22 23:50
deuter:C#不支援這種限制條件 這有討論http://tinyurl.com/2dayufv 08/23 00:04
SDNiceBoat:很好,大約有五十多個多載要寫了.... 〒△〒 08/23 00:13
SDNiceBoat:試著用as轉成int? 但是轉不回去..... 08/23 09:11