Сокращение для инициализации делегатов - PullRequest
0 голосов
/ 28 мая 2018

Допустим, у меня был метод, который принимал делегата в качестве параметра, например:

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 голосов
/ 28 мая 2018

Вы можете использовать лямбда-выражение для создания функции как выражения:

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

Вам также не нужно объявлять SampleDelegate.Вы можете использовать Action<int>.

...