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 ++ θα χρησιμοποιούσα κάτι σαν std :: 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