На более общем плане, в дополнение к ответам, которые являются уже заданный, C# /. NET содержит понятие делегатов, которые являются добрыми, как указатели функций. Вы можете определить свою собственный делегат типы пути определения сигнатуры метода следующим образом:
delegate ReturnType MethodPointer(ParamTypeA paramA, ParamTypeB paramB);
Затем вы можете назначить методы как функции-указатели, как так:
private ReturnType SomeMethod(ParamTypeA paramA, ParamTypeB paramB)
{
...
}
MethodPointer = SomeMethod;
или передать его в качестве обратного вызова к другому функция/метод:
private void OnComplete(MethodPointer callback)
{
...
}
OnComplete(SomeMethod);
с момента объявления делегаты таким образом может быть довольно много времени и cltter кода, они пришли с общими типами делегатов: Action<...>
(для VO id) и Func<...>
(для метода с возвращаемым типом). Теперь вы можете просто сказать:
Func<ParamTypeA, ParamTypeB, ReturnType> func = SomeMethod;
без необходимости явно определять пользовательский делегат MethodPointer.
Лямбда-выражения, как упоминалось в других сообщениях, упрощают создание делегатов, позволяя вам определять встроенные функции, так что вы можете определить реализацию SomeMethod() непосредственно внутри вызова OnComplete() , например:
private void OnComplete(Action<ParameterType> callback)
{
}
OnComplete(parameter =>
{
// implementation goes here...
});
Еще одно преимущество работы с лямбдами заключается в том, что реализации могут обращаться к локальным переменным.
Какие параметры выполняет «OnComplete»? Есть ли для этого документация? – DavidG
Нет параметров, документация здесь: http://dotween.demigiant.com/documentation.php – Jonny