初始化代表的简写

时间:2018-05-28 13:38:13

标签: c# delegates shorthand

我们说我有一个方法将委托作为参数,如下所示:

public delegate void SampleDelegate(int foo);

public void DoSomething(SampleDelegate del) 
{
    //Does something
}

是否会有这样做的简写?

static void Main(String[] args)
{
    void bar(int foo) {
        int x = foo;
    } 
    DoSomething(bar);
}

或者这是最有效的方法吗?

理想情况下,我会做这样的事情:

static void Main(String[] args)
{
    DoSomething(void(int foo) {
        int x = foo;
    });
}

但是会产生语法错误。是否有适当的语法来执行上述操作?

1 个答案:

答案 0 :(得分:2)

您可以使用lambda表达式将函数创建为表达式:

DoSomething(myInt => { ... });

您也不需要声明SampleDelegate。您可以使用Action<int>