2012-03-21 115 views
0

我在VB.Net的通用函数。我也有两个类叫做AB。是否有可能让我的函数的一般限制,允许类型设置为类AB?类AB不共享除对象外的任何基类。通用的约束,允许类型为2个不同类别

+6

听起来不是很通用的,为什么不声明重载方法。 – Jodrell 2012-03-21 17:57:22

回答

6

那是不可能的。我建议你用两个类的通用API创建一个接口,并使这两个类都实现该接口。

+0

从代码重用优选的,面向对象的透视 – Jodrell 2012-03-21 18:13:10

0

虽然我最近重点学习Java的我发现,正是这一点是可能的。在声明通用参数时,可以使用“&”运算符组合多个通用约束。它看起来如下:

public class List<T extends IInterface1 & IInterface2> { 
... 
} 

我对这个问题首先想到的是我希望在.NET中使用这个:-)

+0

.NET和C#也支持多个约束。但是你不能对x或y进行排序,只有x和y。例如。 '空隙FOO ()其中,T:IEnumerable的,新的()'要求吨至是可枚举类型并具有一个默认的构造。但是没有办法说它必须是可枚举的或者有一个默认的构造函数。可惜,因为在几种情况下它确实非常方便。 – 2015-08-19 06:13:56