C # equivalente de C ++ mem_fun?

votos
0

Me gustaría hacer algo como lo siguiente en C #:

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

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

En C ++ usaría algo como std :: mem_fun. ¿Cómo lo haría en C #?

Publicado el 09/12/2008 a las 15:44
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
2

Esto debería funcionar, en C # 3.0:

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

//...    containerObj.ForEach( myobj => myObj.Method() );
Respondida el 09/12/2008 a las 16:00
fuente por usuario

votos
0

Asumiendo que:

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

no es bueno para ti, entonces creo que estás atrapado con la reflexión.

Respondida el 09/12/2008 a las 15:49
fuente por usuario

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