Народ,
конечно ежу понятно, что понятнее
void someMethod()
{
foreach(var item in new[] { item1, item2, item3 })
{
doSomething(item);
}
}
чем пресловутое
void forEach<T>(Action<T> action, params T[] items)
{
foreach(var item in items)
{
action(item);
}
}
void someMethod()
{
forEach(doSomething, item1, item2, item3);
}
но как можно было бы (пусть тоже не слишком наглядно) сделать всё в одном выражении, сохранив возможность выведения компилятором типа аргумента у метода doSomething, чтобы не указывать этот тип явно?
Т.е. избежать явного указания item_type и, по возможности, сохранить раннее связывание, по сравнению с таким способом:
void someMethod()
{
new Action<item_type>(item => doSomething(item)).DynamicInvoke(item1, item2, item3);
}
Есть варианты?
21.09.12 11:17: Перенесено из '.NET'