我有这个类
public class TableSettings
{
public string TableCssClass
{
get;
set;
}
public string EditAction
{
get;
set;
}
}
我希望能够通过参数发送这个对象的实例,这样做:
, tableSettings => {
tableSettings.TableCssClass = "table";
tableSettings.EditAction = "action";
});
此lambda没有创建对象。
像这样的lambda用于配置已经创建的对象,而不是创建新的实例。当您在.NET Core示例中看到这样的代码时,logging
实例是在AddLogging
本身内部创建的:
services.AddLogging(logging =>
{
logging.SetMinimumLevel(LogLevel.Warning)
.AddConsole();
})
如果您检查AddLogging的源代码,您会看到它创建了一个新的LoggingBuilder
实例,并将其作为参数传递给lambda:
public static IServiceCollection AddLogging(this IServiceCollection services,
Action<ILoggingBuilder> configure)
{
...
configure(new LoggingBuilder(services));
return services;
}
为什么要使用lambda来创建Object?您可以像下面的例子一样构造对象。
, new ObjectName {
Property1 = value1,
Property2 = value2
});