小编use*_*723的帖子

c# Action<T> 如何处理匿名方法

我最近自己探索了 c#。但一直被这个问题困扰。

所以我有一个方法 dbExec

public void dbExec(Action<OleDbCommand> func)
{
    using (var conn = new OleDbConnection(connStr))
    {
        conn.Open();
        var cmd = conn.CreateCommand();
        func(cmd); 
    }
}
Run Code Online (Sandbox Code Playgroud)

代表,

public delegate void DelCmd(OleDbCommand cmd);
Run Code Online (Sandbox Code Playgroud)

和另一种方法:

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;
} 
Run Code Online (Sandbox Code Playgroud)

声明的问题dbExec(delcmd);。错误是“delcmd 在当前上下文中不存在”。如何将匿名方法作为参数传递给另一个带有 Action 声明参数的方法?

c# lambda delegates action anonymous-methods

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

action ×1

anonymous-methods ×1

c# ×1

delegates ×1

lambda ×1