我最近探索了C#給自己。但堅持這個問題。c#動作<T>如何使用匿名方法處理
所以我有一個方法dbExec
public void dbExec(Action<OleDbCommand> func)
{
using (var conn = new OleDbConnection(connStr))
{
conn.Open();
var cmd = conn.CreateCommand();
func(cmd);
}
}
委託,
public delegate void DelCmd(OleDbCommand cmd);
和另一種方法:
public ICollection<string> CheckUserPermissions()
{
List<string> logins = new List<string>();
DelCmd delCmd = delegate(OleDbCommand cmd)
{
cmd.CommandText = "SELECT PERMISSIONS.LOGIN FROM PERMISSIONS";
using (var rdr = cmd.ExecuteReader()) while (rdr.Read()) logins.Add(rdr["LOGIN"].ToString());
};
dbExec(delcmd);
return logins;
}
的問題dbExec(delcmd);
聲明。錯誤是「delcmd在當前上下文中不存在」。如何使用Action聲明的參數將匿名方法作爲參數傳遞給另一個方法?
這是因爲大寫'C'很重要:)'delcmd'應該是'delCmd'。 – dasblinkenlight