假设Foo有2个重载:
void Foo(int[] array) { ... }
void Foo(int[,] array) { ... }
我编写了一个函数Bar,它调用了Foo,我希望Bar支持int []和int [,]参数,所以我有这个:
void Bar(int[] array)
{
// do some work here, and finally call Foo:
Foo(array);
}
void Bar(int[,] array)
{
// do some work here, and finally call Foo:
Foo(array);
}
我想通过制作一个通用的Bar方法来删除代码重复。伪代码:
void Bar<TArray>(TArray array)
where TArray is_a_type_accepted_by Foo
{
// do some work here, and finally call Foo:
Foo(array);
}
这可能吗?
答案 0 :(得分:2)
不,在C#中无法实现这样的约束。