Shorthand 用于初始化委托

Shorthand for initializing delegates

假设我有一个将委托作为参数的方法,如下所示:

public delegate void SampleDelegate(int foo);

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

做这样的事情会有 shorthand 吗?

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

但这会产生语法错误。执行上述操作是否有正确的语法?

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

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

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