我已经阅读了一些关于匿名(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 函数或委托重写吗?应该吗?应该如何重写?