C # equivalente a mem_fun C ++?

votos
0

Eu gostaria de fazer algo como o seguinte em C #:

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

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

Em C ++ eu usaria algo como std :: mem_fun. Como eu iria fazê-lo em C #?

Publicado 09/12/2008 em 15:44
fonte usuário
Em outras línguas...                            


2 respostas

votos
2

Isso deve funcionar, em C # 3.0:

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

//...    containerObj.ForEach( myobj => myObj.Method() );
Respondeu 09/12/2008 em 16:00
fonte usuário

votos
0

Assumindo que:

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

não é bom para você, então eu acho que você está preso com reflexão.

Respondeu 09/12/2008 em 15:49
fonte usuário

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