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);

это не хорошо для вас, тогда я думаю, что вы застряли с отражением.

Другие вопросы по тегам