如何正确初始化 lambda 表达式的参数,其中 lambda 是方法参数?



我在这里找到了一个例子https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-3.1&tabs=窗口:

static void Main(string[] args)
{
var host = new HostBuilder();
host.ConfigureAppConfiguration((hostContext, builder) =>
{
// Add other providers for JSON, etc.
if (hostContext.HostingEnvironment.IsDevelopment())
{
//builder.AddUserSecrets<Program>();
}
})
.Build();
}

当此代码在调试模式下启动时,hostContextbuilder变量已经具有一些值。我怎么能像上面描述的那样写我自己的方法呢?例如,当我将lambda表达式作为参数传递给我的方法时,那么拥有该方法的类可以通过一些自定义对象初始化该lambda表达式的参数?

这里的lambda只是一个Action<T1, T2>

所以你可以这样写你的方法:

public static void DoMyWork(Action<Something, Else> action) {
var something = new Something();
var else = new Else();
action(something, else);
}

然后这样称呼它:

MyClass.DoMyWork((something, else) => {
Console.WriteLine($"{something} is not null and neither is {else}");
});

最新更新