首页 新闻 搜索 专区 学院

C#泛型约束 只有且的关系 无法表示或的约束关系?

0
悬赏园豆:10 [待解决问题]

如 where TRequest :  IXXX,new() 表示继承于IXXX同时带有无参构造函数 很容易实现

 

但如果要实现 泛型 既可以为 int,string等类型,也可以为某自定义类 此类必须带有无参构造函数时就蛋痛了,要是还来个可以为Guid就更麻烦。  

where TRequest :  IConvertible ????? new()  ???

wintersoft的主页 wintersoft | 初学一级 | 园豆:80
提问于:2016-01-23 20:22
< >
分享
所有回答(2)
0

不能.你可以将这或的2个再写一个基类或者基类接口来实现.

因为泛型约束要保证可以用约束指定的.如果或的话就没法保证.

比如1或者2的情况那一个满足1的你就可以用2来处理.这样是错误的.

所以这个需求本身就有问题

吴瑞祥 | 园豆:29369 (高人七级) | 2016-01-23 22:41

同时满足你说的1或2是合理的,这个需求没问题吧,你说的需求有问题是什么情况 实际应用中也存在,就像if中的或且非关系。

 

我已经找到方法。     不过感谢你的回帖。

支持(0) 反对(0) wintersoft | 园豆:80 (初学一级) | 2016-01-24 19:16

@geek_power: 那是同时满足也就是并且..而不是或.并的关系肯定是可以的.

支持(0) 反对(0) 吴瑞祥 | 园豆:29369 (高人七级) | 2016-01-25 08:38
0

请问楼主如何解决的?分享一下吧

龙葛格 | 园豆:782 (小虾三级) | 2016-01-28 20:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册