Да - ваш метод bubble_sort
требует int[]
в качестве параметра, тогда как SortHandler
указывает только IList<T>
.Вы не можете создать SortHandler<int>
из bubble_sort
.
Только то, что вы сортируете int[]
, не означает, что CollectionHelper.Sort
гарантированно вызывает делегат с массивом вместо (скажем) a List<int>
.
Например, рассмотрим эту реализацию:
public void Sort<T>(T[] array, SortHandler<T> handler)
{
List<T> list = new List<T>(array);
handler(list);
}
Как вы ожидаете, что справитесь, если вам удалось передать в методе bubble_sort
какваш обработчик?
Самое простое решение - изменить bubble_sort
метод для принятия IList<int>
вместо int[]
.
(хотя это немного странная ситуация, мне нужноНапример, тип обработчика, который вы передадите в общий метод сортировки, будет чем-то сравнивать любые два элемента, а не выполнять саму фактическую сортировку.)