C # équivalent de mem_fun de C?

voix
0

Je voudrais faire quelque chose comme ce qui suit en C #:

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

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

En C ++ j'utiliser quelque chose comme std :: mem_fun. Comment puis-je faire en C #?

Créé 09/12/2008 à 15:44
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
2

Cela devrait fonctionner, en C # 3.0:

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

//...    containerObj.ForEach( myobj => myObj.Method() );
Créé 09/12/2008 à 16:00
source utilisateur

voix
0

En admettant que:

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

est pas bon pour vous, alors je pense que vous êtes coincé avec la réflexion.

Créé 09/12/2008 à 15:49
source utilisateur

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