Делегаты действий в F#

В примерах библиотеки Giraffe я заметил следующее:

[<EntryPoint>]
let main _ =
    WebHostBuilder()
        .UseKestrel()
        .Configure(Action<IApplicationBuilder> configureApp)
        .ConfigureServices(configureServices)
        .Build()
        .Run()
    0

Хотя я понимаю большую часть этого, мне неясно, Configure(Action<IApplicationBuilder> configureApp) - является configureApp быть брошенным в Action<IApplicationBuilder>?

ОБНОВИТЬ

Насколько я понимаю вызовы конструктора, согласно документации Microsoft:

Вы инициализируете свои объекты вместе с аргументами конструктора, перечисляя аргументы по порядку и разделяя их запятыми и заключая в круглые скобки, или используя именованные аргументы и значения в круглых скобках.

1 ответ

Решение

Он создает новый делегат, используя конструктор делегата как функцию F#. Эквивалент C# будет:

.Configure(new Action<IApplicationBuilder>(configureApp))
Другие вопросы по тегам