C # równoważne C ++ mem_fun?

głosy
0

Chciałbym zrobić coś jak poniżej w C #:

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

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

W C ++ chciałbym użyć czegoś podobnego std :: mem_fun. Jak to zrobić w C #?

Utwórz 09/12/2008 o 15:44
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
2

To powinno działać w C # 3.0:

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

//...    containerObj.ForEach( myobj => myObj.Method() );
Odpowiedział 09/12/2008 o 16:00
źródło użytkownik

głosy
0

Przy założeniu, że:

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

nie jest dla ciebie dobre, to myślę, że utkniesz z refleksji.

Odpowiedział 09/12/2008 o 15:49
źródło użytkownik

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