作者SDNiceBoat (NiceBoat.)
看板C_Sharp
標題[問題] 泛型的約束條件?
時間Sun Aug 22 21:07:30 2010
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
1F:→ remmurds:最簡單的方法 用typeof檢查T的型別 如果不是你要的就丟 08/22 21:12
2F:→ remmurds:Exception 08/22 21:12
3F:→ remmurds: TItem 08/22 21:13
4F:→ SDNiceBoat:那個在執行的時候才會吐ex出來,不太好吧? 囧" 08/22 21:26
5F:→ pico2k:你完全沒弄懂泛型的觀念... 08/22 23:30
6F:→ SDNiceBoat:樓上,你是指什麼觀念? 我自修,思路跟想法會跟學校教 08/22 23:35
7F:→ SDNiceBoat:出來的不一樣..... 08/22 23:35
8F:→ pico2k:generics的用處是在於指明瓶子裡到底裝了什麼東西... 08/22 23:37
9F:→ SDNiceBoat:嗯? 什麼意思? 08/22 23:38
10F:→ pico2k:你還是去用c++吧,c++有提供operator overload 08/22 23:40
11F:→ pico2k:你想做的東西,C++的operator overload可以達到你要的功能 08/22 23:41
12F:→ SDNiceBoat:C#也有運算子多載啦..... 但我想做的不是這個 08/22 23:45
13F:→ SDNiceBoat:我現在在寫類似語法樹的東西,數值可能是int、float 08/22 23:46
14F:→ SDNiceBoat:、double、decimal甚至Vector2都有可能...... 08/22 23:47
15F:→ SDNiceBoat:當我讀到 XXX + OOO 的時候,我必須呼叫一個遞迴去把他 08/22 23:48
16F:→ SDNiceBoat:們加起來,問題是.... 我必須得一個個寫多載嗎? 那我漏 08/22 23:49
17F:→ SDNiceBoat:掉的不就沒辦法作運算了? 而且也是為了節省程式碼的份 08/22 23:49
18F:→ SDNiceBoat:量,因為還有+ - * / % 之類的要寫...... 08/22 23:50
20F:→ SDNiceBoat:很好,大約有五十多個多載要寫了.... 〒△〒 08/23 00:13
21F:→ SDNiceBoat:試著用as轉成int? 但是轉不回去..... 08/23 09:11