如何使用表达式创建TableSettings类实例并通过参数传递
实现方案
你需要通过**Action<TableSettings>委托**来实现这种参数传递形式,具体步骤如下:
1. 定义接收配置逻辑的方法
先写一个方法,把配置TableSettings的逻辑作为参数传入,方法内部负责创建实例并执行配置:
public void GenerateTable(Action<TableSettings> configureSettings) { // 创建TableSettings空实例 var tableSettings = new TableSettings(); // 执行传入的配置委托,给实例赋值 configureSettings(tableSettings); // 后续可使用配置好的实例做业务逻辑,比如渲染表格 Console.WriteLine($"表格CSS类:{tableSettings.TableCssClass},编辑动作:{tableSettings.EditAction}"); }
2. 调用方法时传入配置Lambda
此时就能用你想要的形式传递配置逻辑了:
GenerateTable(tableSettings => { tableSettings.TableCssClass = "table"; tableSettings.EditAction = "action"; });
可选:添加默认配置重载
如果需要支持无配置参数的场景,可以给方法加个重载,提供默认配置:
public void GenerateTable() { GenerateTable(settings => { settings.TableCssClass = "table-default"; settings.EditAction = "edit-default"; }); }
核心原理
这里用到的Action<TableSettings>是.NET内置委托类型,它代表接受一个TableSettings参数且无返回值的方法。你传入的Lambda表达式会被编译成该委托的实例,方法内部通过调用委托完成对TableSettings实例的属性赋值。
内容的提问来源于stack exchange,提问作者Emmanuel Jimenez
相关产品推荐
相关产品推荐

