Делегат – как он принимает дополнительные аргументы, выходящие за рамки его определенияC#

Место общения программистов C#
Anonymous
Делегат – как он принимает дополнительные аргументы, выходящие за рамки его определения

Сообщение Anonymous »

Во время работы с книгой Адама Фримана Pro ASP.NET Core я заметил следующее использование метода MapGet("route", RequestDelegate):

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

app.MapGet("endpoint/function",
async (HttpContext context, IResponseFormatter formatter) => {
await formatter.Format(context, "Endpoint Function: It is sunny in LA");
});

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

IResponseFormatter
был зарегистрирован в DI как синглтон, но я не понимаю, зачем запрашивать делегат со следующим исходным кодом

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

public delegate Task RequestDelegate(HttpContext context);
принимает дополнительные аргументы, выходящие за рамки его определения.
Здесь я обнаружил, что это возможно, но когда я попытался создать делегат и функцию с дополнительными параметрами - не сработало.
Поэтому при поиске я не нашел ни документации, ни статей, когда и как работают дополнительные аргументы, чтобы правильно их использовать, не могли бы вы предоставить какие-либо статьи или документацию или какое-либо объяснение?

Подробнее здесь: https://stackoverflow.com/questions/790 ... definition

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