Анонимные методы больше не пропускают параметры? - PullRequest
0 голосов
/ 08 апреля 2019

Я уже некоторое время работаю над отчетом о делегатах, а также работаю с ними более года.

Просматривая некоторую информацию о различиях между анонимными методами, используемыми в C # 2.0, и лямбда-выражениями в C #, я прочитал кое-что о функциональности, которую анонимные методы 2.0 предоставляют, которую лямбда не делает: они могут опустить список параметров.

После некоторого исследования этого я пытаюсь проверить это на своей личной IDE, которая работает под управлением последней версии C #, обнаружив, что, когда я пытаюсь назначить анонимный метод без каких-либо параметров моему типу Delegate, используя ихя получаю сообщение об ошибке:

Delegate Test. MyHelloDelegate не принимает 0 аргументов.некоторые доказательства этого, так как я буду помещать это в свой отчет.Хотелось бы узнать, есть ли у кого-нибудь представление о том, что происходит с этим.

1 Ответ

0 голосов
/ 08 апреля 2019

Да, потому что подключенный анонимный метод не принимает входной параметр. Измените его на

public delegate void MyHelloDelegate (string s);
MyHelloDelegate Hello = delegate(string s) { Console.WriteLine("Hello from delegate " + s); };

Если вы не хотите передавать какой-либо параметр, рассмотрите возможность использования приведенного ниже синтаксиса

MyHelloDelegate Hello = delegate { Console.WriteLine("Hello from delegate "); };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...