【发布时间】:2013-08-09 23:19:39
【问题描述】:
我已经阅读了一些关于匿名 (lambda) 函数和委托的内容。我相信我正在处理我的部分功能可以/应该使用它们的情况。我不确定我的假设是否正确。
当前代码:
fDoSave(fGetSqlCheckEmpJob(), fGetSqlUpdateEmpJob(), fGetSqlInsertEmpJob());
fDoSave(fGetSqlCheckEmpPayrl(), fGetSqlUpdateEmpPayrl(), fGetSqlInsertEmpPayrl());
fDoSave(fGetSqlCheckEEO(), fGetSqlUpdateEEO(), fGetSqlInsertEEO());
fDoSave(fGetSqlCheckEmpPhone(), fGetSqlUpdateEmpPhone(), fGetSqlInsertEmpPhone());
fGetSqlCheck...() - 将 sql 语句作为字符串返回,该字符串返回具有特定 ID 的所有行的 count()
fGetSqlUpdate...() 将 sql 语句作为执行更新的字符串返回。
fGetSqlInsert...() 将 sql 语句作为执行插入的字符串返回。
fDoSave() 根据fGetCheck...() 返回的值进行更新或插入
fGetSql 函数如下所示:
private string fGetSql...()
{
StringBuilder sb = new StringBuilder();
//Create sql statement
return sb.ToString();
}
fDoSave 函数如下所示:
private void fDoSave(string sSql_Check, string sSql_Update, sSql_Insert)
{
OracleDataReader dr = ERPDB.sqlGetDataReader(sSql_Check);
while (dr.Read())
{
if(fCheckIfRecrodExists(dr) > 0) //if fGetSqlCheck...() found a row with a specific ID
//do update using sSql_Update
else
//do insert using sSql_Insert
}
}
这可以使用 lambda 函数或委托重写吗?应该吗?应该怎么改写?
【问题讨论】:
-
这些方法都是什么?
-
如果您对某个问题投了反对票,那么解释一下您认为应该更改问题的原因和方式将是一种礼貌(并且非常有帮助)。
-
我不能,因为你的问题对我没有任何意义。
-
我们需要了解每种方法的作用,以便做出任何判断。因为代码并不清楚它的作用。如果那是你的代码,你也可以考虑改变你的编码风格。
-
@I4V “这可以使用 lambda 函数或委托重写吗?应该如何重写?”你觉得难以理解吗?
标签: c# lambda delegates anonymous-function