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); 
    }
}

代表,

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声明参数的另一个方法?

菲利普·M

您也可以避免完全定义委托。

像这样:

public ICollection<string> CheckUserPermissions()
{
    List<string> logins = new List<string>();

    Action<OleDbCommand> delCmd = 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;
}

编辑:我的意思是说Servy在另一个答案的评论中写了什么,但他描述得更好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何对对象使用C#Action?

来自分类Dev

如何对对象使用C#Action?

来自分类Dev

如何处理匿名类型<T>的转换委托,如何处理IEnumerable <T>的Where <T>()方法中使用的T的委托

来自分类Dev

如何使用带变量的Action(Of T)参数调用方法

来自分类Dev

如何在Action <IBuilder <T >>中使用泛型来处理特定于类型的配置?

来自分类Dev

在C#中用Func <T,M>和Action <T>覆盖方法

来自分类Dev

Expression <Action <T >>方法调用

来自分类Dev

如何在循环中使用匿名方法实例化唯一委托(在C#中)?

来自分类Dev

如何让本地匿名C ++函数对象使用包含方法中的参数?

来自分类Dev

使用Action <T>将一些C#代码移植到F#

来自分类Dev

将List <匿名类型>传递到需要C#中的List <T>的方法中

来自分类Dev

在C#中使用Linq到SQL将匿名类型转换为列表<T>

来自分类Dev

如何使用依赖项注入配置Action <T>

来自分类Dev

如何从MethodInfo创建Action <Tᴺ>或Func <Tᴺ,从TResult>中创建

来自分类Dev

在方法签名中使用委托与使用Func <T> / Action <T>有什么区别?

来自分类Dev

Action <T>和非参数方法

来自分类Dev

带有 Action<T> 参数的 Powershell 方法

来自分类Dev

如何动态推断Action <T>的类型?

来自分类Dev

如何从Expression <Action <T >>中获取值?

来自分类Dev

使用事件Action <T>引发事件

来自分类Dev

如何在VB中编写此匿名C#方法?

来自分类Dev

如何通过在C#中生成IL将Action <T>转换为编译表达式或DynamicMethod?

来自分类Dev

为什么C#不能隐式转换Action <T>其中T:BaseType到Action <BaseType>

来自分类Dev

在C#中使用IComparer <T> .Compare(T,T)

来自分类Dev

如何使用pyspark函数处理日期格式的T和Z

来自分类Dev

从Action <T>的实例获取Invoke MethodInfo的最安全方法

来自分类Dev

无法理解此Func <in T,out T>应该如何与Url.Action委托一起使用

来自分类Dev

如何将对象投射到Action <T>

来自分类Dev

如何从Expression <Action <T >>获取接口成员名称

Related 相关文章

  1. 1

    如何对对象使用C#Action?

  2. 2

    如何对对象使用C#Action?

  3. 3

    如何处理匿名类型<T>的转换委托,如何处理IEnumerable <T>的Where <T>()方法中使用的T的委托

  4. 4

    如何使用带变量的Action(Of T)参数调用方法

  5. 5

    如何在Action <IBuilder <T >>中使用泛型来处理特定于类型的配置?

  6. 6

    在C#中用Func <T,M>和Action <T>覆盖方法

  7. 7

    Expression <Action <T >>方法调用

  8. 8

    如何在循环中使用匿名方法实例化唯一委托(在C#中)?

  9. 9

    如何让本地匿名C ++函数对象使用包含方法中的参数?

  10. 10

    使用Action <T>将一些C#代码移植到F#

  11. 11

    将List <匿名类型>传递到需要C#中的List <T>的方法中

  12. 12

    在C#中使用Linq到SQL将匿名类型转换为列表<T>

  13. 13

    如何使用依赖项注入配置Action <T>

  14. 14

    如何从MethodInfo创建Action <Tᴺ>或Func <Tᴺ,从TResult>中创建

  15. 15

    在方法签名中使用委托与使用Func <T> / Action <T>有什么区别?

  16. 16

    Action <T>和非参数方法

  17. 17

    带有 Action<T> 参数的 Powershell 方法

  18. 18

    如何动态推断Action <T>的类型?

  19. 19

    如何从Expression <Action <T >>中获取值?

  20. 20

    使用事件Action <T>引发事件

  21. 21

    如何在VB中编写此匿名C#方法?

  22. 22

    如何通过在C#中生成IL将Action <T>转换为编译表达式或DynamicMethod?

  23. 23

    为什么C#不能隐式转换Action <T>其中T:BaseType到Action <BaseType>

  24. 24

    在C#中使用IComparer <T> .Compare(T,T)

  25. 25

    如何使用pyspark函数处理日期格式的T和Z

  26. 26

    从Action <T>的实例获取Invoke MethodInfo的最安全方法

  27. 27

    无法理解此Func <in T,out T>应该如何与Url.Action委托一起使用

  28. 28

    如何将对象投射到Action <T>

  29. 29

    如何从Expression <Action <T >>获取接口成员名称

热门标签

归档