C # equivalent van C ++ mem_fun?

stemmen
0

Ik wil graag iets doen als het volgende in C #:

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

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

In C ++ zou ik iets als std :: mem_fun gebruiken. Hoe zou ik dat doen in C #?

De vraag is gesteld op 09/12/2008 om 15:44
bron van user
In andere talen...                            


2 antwoorden

stemmen
0

In de veronderstelling dat:

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

is niet goed voor je is, dan denk ik dat je vast zit met reflectie.

antwoordde op 09/12/2008 om 15:49
bron van user

stemmen
2

Dit zou moeten werken, in C # 3.0:

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

//...    containerObj.ForEach( myobj => myObj.Method() );
antwoordde op 09/12/2008 om 16:00
bron van user

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