为了账号安全,请及时绑定邮箱和手机立即绑定

泛型约束问题

泛型约束问题

慕田峪4524236 2018-11-07 05:02:05
能不能将类型参数约束为指定类型,而不是约束为实现了某个接口或继承某个类型。比如下面一个类:我要求 Tc 的类型 必须是Ta 或者是Tb。(下面这样定义好象不对。意思好象是Tc 要继承或实现 Ta 和 Tb。)public class MyClass<Ta, Tb> {  public void DoSomeThing<Tc>()      where Tc : Ta, Tb      {   }}                  
查看完整描述

2 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

泛型接口没有或只有且,如果是或的话,你在DoSomeThing方法是到底怎么判断Tc的对象是Ta还是Tb呢,既然不能判断又怎么去调用相应的方法呢……另外你这个即没有返回值也没有参数的方法用泛型的意义在哪里呢……

查看完整回答
反对 回复 2018-11-12
?
萧十郎

TA贡献1815条经验 获得超13个赞

那当然不可能啊,除非Ta、Tb从一个接口或基类派生。

不然您想想,如果不定义基类,Ta有3个方法(A1,A2,A3),而Tb有3个不同的方法(B1,B2,B3),那在未运行前,你怎么才能让编译器识别到啊

所以接口和基类起码可以保证子类有此方法,在运行时才能动态的调用


查看完整回答
反对 回复 2018-11-12
  • 2 回答
  • 0 关注
  • 307 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信