作者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