Я недавно исследовал 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