Допустим, у 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);
}
Возможно ли это?