У меня есть несколько методов, которые возвращают список GridTiles, например, GetTopNeighbour. Я хотел бы иметь возможность передавать их в метод AutoConnect, используя в качестве параметра делегат GetNeighboursHandler.
public delegate List<GridTile> GetNeighboursHandler(GridTile c);
public List<GridTile> GetTopNeighbour(GridTile c)
{
//do stuff and return list
return null;
}
public GridTile AutoConnect(GridTile c, GetNeighboursHandler del)
{
List<GridTile> tempList = del(c);
// do stuff with the tempList
}
public void Test(GridTile c)
{
AutoConnect(c, GetTopNeighbour(c));
}
В методе Test я получаю сообщение об ошибке: ... невозможно преобразовать ... Generic.List ... в GetNeighboursHandler.
Полностью ли я неправильно понял, как работают делегаты?