两个具有相同名称但不同通用参数的方法

时间:2015-01-23 19:11:53

标签: c# .net generics overloading

假设我有一个班级ClassA和一个班级ClassB,这两个班级彼此完全不同。

例如:

public class ClassA {}
public class ClassB {}

现在我定义了两种方法:

public void Foo<X>(X x) where X : ClassA {}
public void Foo<Y>(Y y) where Y : ClassB {}

如您所见,两个Foo方法具有相同的名称,相同的返回类型和相同数量的参数。但是,每种方法都有不同的约束。 Foo<X>只能接受从ClassA延伸的通用参数,而Foo<Y>只能接受从ClassB延伸的通用参数。

然而,编译器抛出以下错误:

  

类型Testing.Program已经定义了一个名为Foo的成员,其参数类型相同

据我了解,每种方法都接受不同的参数类型。

我错过了什么?

0 个答案:

没有答案