当前位置:  开发笔记 > 编程语言 > 正文

将操作委托作为参数传递给C#

如何解决《将操作委托作为参数传递给C#》经验,为你挑选了1个好方法。

我有一个接受Action委托并执行给定方法的方法,如下所示:

public void ExpMethod(Action inputDel)
{
    inpuDel();
}

我可以这样调用上面给出的方法:

ExpMethod(() => {/*do something that matters*/});

一切正常.到现在为止还挺好.现在我想要一个将泛型Action委托作为输入参数的方法 - 像这样:

public void ExpGenMethod(Action inputDel)
{
    // I don't know how to call the supplied delegate as it requires parameters
}

另外,我试图ExpGenMethod用这种方式调用它:

ExpGenMethod(("Hi",1) => {/*do something that makes sense*/});

但它显示语法错误.在这种情况下,请告诉我如何使用通用操作委托?



1> HimBromBeere..:

委托的重点是指向一个方法.在声明它的同时将参数传递给它是没有意义的.而是在执行委托的方法中传递您的委托的参数,在您的情况下ExpGenMethod:

你应该这样做:

public void ExpGenMethod(Action inputDel)
{
    inputDel("Hi", 1);
}

并称之为:

ExpGenMethod((x, y) => {/*do something that makes sense*/});

当执行该委托x评估,以"Hi"y1.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有