Я пишу делегатов так.
delegate void MyMethod(string arg1, string arg2);
MyMethod mm;
Я не знаю, зачем ему нужно две строки, чтобы объявить один делегат. Если в моем классе 20 делегатов, мне нужно написать 40 строк кода. Может ли кто-нибудь сказать мне способ написать это в одной строке кода? Заранее спасибо.
Вы заявляете здесь две разные вещи:
MyMethod
Важно понимать разницу, потому что тогда вы можете работать, когда действительно хотите объявить новый тип делегата, и когда вы просто хотите объявить поле существующего типа делегата. Если ваш класс имеет 20 полей делегатов, вы почти наверняка не хотите объявлять новый тип для каждого из них. Если у них есть одна и та же подпись, вы можете использовать один тип... или лучше, просто используйте один из типов фреймворков, например Action<...>
или Func<...>
.
Action<string, string> mm;
(Есть Action
делегатов void
типов возврата, и Func
делегаты non- void
типов возврата, с разным числом параметров, все выражается в общих чертах. Посмотрите на MSDN для получения более подробной информации.)