Почему я получаю эту ошибку: делегировать 'func ' не принимает 3 аргументаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему я получаю эту ошибку: делегировать 'func ' не принимает 3 аргумента

Сообщение Anonymous »

Предисловие: я очень новичок в генериках, извините Создайте сетку (пользовательский класс, а не встроенный Unity) объектов mpepathnode . Но когда я пытаюсь, я продолжаю получать следующую ошибку: < /p>

делегировать 'func
' не принимает 3 аргумента < /p>

Вот mpepathfinding , где я получаю ошибку:

Код: Выделить всё

public MPEPathfinding(int width, int height)
{
grid = new Grid(width, height, 1f, Vector3.zero, (Grid g, int x, int y) => new MPEPathNode(g, x, y));
}
А вот и mpepathnode Я пытаюсь использовать для заполнения сетки:

Код: Выделить всё

public MPEPathNode (Grid grid, int x, int y)
{
this.grid = grid;
this.x = x;
this.y = y;
}
< /code>
Наконец, вот конструктор сетки, который я использую: < /p>
public Grid(int width, int height, float cellSize, Vector3 originPosition, Func createGridObject)
{
this.width = width;
this.height = height;
this.cellSize = cellSize;
this.originPosition = originPosition;

gridArray = new TGridObject[width, height];

for (int x = 0; x < gridArray.GetLength(0); x++)
{
// other code
}
}
Как я уже сказал, я очень новичок в этом материале, но, насколько я могу судить, у меня есть 3 аргумента в объявлении метода, так что это должно работать ...?
Я создал это, следуя учебному пособию на YouTube, пытаясь понять все, как я, но этот оторван. Мой код выглядит идентично учебному пособию (четырехкратный проверял его). Любая помощь была бы очень оценена! Я также рассмотрел несколько вопросов, заданных здесь, которые включали этот код ошибки или аналогичный, и не нашел ни одного, который помогает. Идея заключалась в том, чтобы передать каждому mpepathnode ссылку на сетку и ее местоположение в ней, как она создана. Это был случай, когда я не понимал выражения Lambda, и мне еще есть чему по -видимому, по -видимому, учиться, но ... решение для этой непосредственной проблемы состояла в том, чтобы изменить декларацию фонда конструктора сетки , чтобы взять 3 аргументы: < /p>
public Grid(int width, int height, float cellSize, Vector3 originPosition, Func createGridObject)
< /code>
Спасибо за помощь! Надеюсь, кто -то еще может найти это полезным в будущем.

Подробнее здесь: https://stackoverflow.com/questions/794 ... e-3-argume
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»