Есть задача вызывать определенную функцию на списке экземпляров класса. Есть ли возможность реализовать так же красиво как с помощью mem_fun в плюсах?
void process(IEnumerable<Task> tasks, ?Func? func)
{
foreach (Task task in tasks)
func(task);
}
process(myList, ?mem_fun?(Task.run));
Подскажите правильное решение?
з.ы. лямбда выражения вроде
x => x.run() + Action<Task>
— что-то не сильно красиво выглядят в данном случае %)
Здравствуйте, Аноним, Вы писали:
А>з.ы. лямбда выражения вроде
А>А>x => x.run() + Action<Task>
А>
— что-то не сильно красиво выглядят в данном случае %)
Нормально выглядит.
Здравствуйте, <Аноним>, Вы писали:
А>Подскажите правильное решение?
А>з.ы. лямбда выражения вроде
А>А>x => x.run() + Action<Task>
А>
— что-то не сильно красиво выглядят в данном случае %)
Еще бы, это даже не скомпилируется. В твоей задаче будет так:
void Process(this IEnumerable<Task> tasks, Func<Task> func)
{
foreach (var task in tasks)
func(task);
}
myList.Process(task => task.Run());
... <<RSDN@Home 1.2.0 alpha 4 rev. 1090 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Еще бы, это даже не скомпилируется. В твоей задаче будет так:
если это был стёб — то не уместный
именно так как я написал все работает и компилируется — т.е. в связке Action<Task> и лямбда x => x.run()
сигнатура run — void run();