c# - 有没有办法用 lambda 简化这个函数?
问题描述
所以我会尽量做到描述性。我有一个 winforms 应用程序,它在标签上对机器进行分组。我有工作代码,但我想知道是否有任何其他更好的方法或更易读的代码可以用更少的代码做同样的事情?
因此,基本上当计数达到 23 时,我试图根据名为 count 的列将其重置为 0,该列按位为 1 或 0,当它为 1 时,标签将仅显示计数为 0 的数据。
if (lbl1.Text == "23")
{
string sql = "update tbl_mch_ability set count = 1 where mchNo = 'Spot 1' ";
con.OpenConnection();
con.ExecuteQuery(sql);
}
else if (lbl2.Text == "23")
{
string sql = "update tbl_mch_ability set count = 1 where mchNo = 'Spot 2' ";
con.OpenConnection();
con.ExecuteQuery(sql);
}
这工作正常,但我有超过 10 磅,我想知道是否有更简单的方法来做到这一点?
解决方案
您可以将重构与 lambda 一起使用:
Action<Label, string, string> update = (label, trigger, mchNo) =>
{
if ( label.Text == trigger )
{
string sql = $"update tbl_mch_ability set count = 1 where mchNo = '{mchNo}' ";
con.OpenConnection();
con.ExecuteQuery(sql);
}
};
update(lbl1, "23", "Spot 1");
update(lbl2, "23", "Spot 2");
您应该使用 sqlparameters 来防止注入,这是一种很好的常规反射做法。
推荐阅读
- python - 在 python 中使用 seaborn 在分布图上显示峰度、偏度等指标
- search - Laravel 5.6 搜索分页给出错误“抱歉页面在第 2 页上找不到”
- sql-server - 无法使用 Sql Server 2016 SP1 安装 TFS2018
- javascript - 在ejs模板中使用嵌入式js加载静态文本文件
- json - 如何用 swift 4 解码这个 JSON
- python - 在 Mac OS 10.13.15 上安装 MySQL-python 导致命令“clang”失败,退出状态为 1
- http - apache 上的 Http 到 nginx 上的 https
- javascript - 删除类时CSS过渡不起作用
- swift - 是否有任何特定资源可以演示在 Swift 中可以推断出哪些值?
- javascript - vuejs - 如何添加 vue-material 主题