C# эквивалент C++ mem_fun?
Я хотел бы сделать что-то вроде следующего в C#:
class Container {
//...
public void ForEach(Action method) {
foreach (MyClass myObj in sequence) myObj.method();
}
}
//...
containerObj.ForEach(MyClass.Method);
В C++ я бы использовал что-то вроде std::mem_fun. Как бы я сделал это в C#?
2 ответа
Решение
Это должно работать, в C# 3.0:
class Container
{
//...
public void ForEach(Action<MyObj> method)
{
foreach (MyClass myObj in sequence) method(myObj);
}
}
//... containerObj.ForEach( myobj => myObj.Method() );
При условии, что:
public void ForEach(Action method) {
foreach (MyClass myObj in sequence) method(myObj);
это не хорошо для вас, тогда я думаю, что вы застряли с отражением.