C # эквивалент C ++ mem_fun?

голоса
0

Я хотел бы сделать что-то вроде следующего в C #:

    class Container {
        //...
        public void ForEach(Action method) {
            foreach (MyClass myObj in sequence) myObj.method();
        }
    }

    //...
    containerObj.ForEach(MyClass.Method);

В C ++ я хотел бы использовать что-то вроде станд :: mem_fun. Как бы сделать это в C #?

Задан 09/12/2008 в 15:44
источник пользователем
На других языках...                            


2 ответов

голоса
2

Это должно работать, в C # 3.0:

class Container 
{        
//...        
public void ForEach(Action<MyObj> method) 
{            
    foreach (MyClass myObj in sequence) method(myObj);        
}    
}   

//...    containerObj.ForEach( myobj => myObj.Method() );
Ответил 09/12/2008 в 16:00
источник пользователем

голоса
0

При условии, что:

    public void ForEach(Action method) {
        foreach (MyClass myObj in sequence) method(myObj);

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

Ответил 09/12/2008 в 15:49
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more