c# - Action <T> 用作参数

标签 c# .net delegates .net-core

我刚开始使用 .net 核心,发现 Action<T>无处不在。我在下面的 Swagger 代码块中提供了示例代码。我的问题是使用 Action<T> 有什么用?这里?我需要传递配置数据。 Swagger 如何提取配置数据?

 services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new Info
            {
                Version = "v1",
                Title = "My API",
                Description = "My First ASP.NET Core Web API",
                TermsOfService = "None",
                Contact = new Contact() { Name = "Talking Dotnet", Email = "x@x.com", Url = "www.x.com" }
            });
        });5

最佳答案

这是一个不返回任何内容的 lambda 函数。您可以在那里提供 void 返回方法。

这里只是使用它,以便您可以提供一个函数来使用 T 做一些事情。这意味着库可以创建默认选项对象并为您提供修改它的方法。

该方法会做类似的事情

public void AddFoo(Action<FooOptions> configure) {
    // Create a default configuration object
    var options = new FooOptions();

    // Let the action modify it
    configure(options);

    // Do something with the now configured options
}

关于c# - Action <T> 用作参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51217002/

相关文章:

java - Camunda 在启动流程时发送列表作为流程变量

C# "Extra Space"添加到动态添加面板

c# - 建议实现 String.Replace(string oldValue, Func<string> newValue) 函数

c# - 为什么协变和逆变不支持值类型

c# - 配置文件 'C:\my\App.Config' 用于配置所有可执行文件

ios - 找不到 'AVCapturePhotoCaptureDelegate' 的协议(protocol)声明

c# - 使用 BeginInvoke 运行委托(delegate)方法

c# - 为什么 C# 中的异步调用需要这样声明,如果它们所在的方法已经用 'async' 关键字声明了?

c# - PO 文件本地化无法按预期用于数据注释

c# - 按回车键自动完成扩展器ajax