(Wie) ist es möglich, bind/rebind Methode zu arbeiten, mit ein Delegat, der eine andere Signatur?

Ich bin ein c++ Entwickler, die verwendeten Signale & Ablagefächer in c++, das auf mich scheint, Analog zum Delegaten in c#. Ich habe festgestellt, mich an einem Verlust bei der Suche nach den Funktionen "binden", und das Gefühl, ich muss etwas fehlen.

Ich das Gefühl, dass so etwas wie die folgenden, die möglich ist, in c++ möglich sein sollte, in c# mit den Delegaten. Hier einige psudo-code für das, was ich tun würde, in c++:

Slot<void> someCallback;

int foo(int i)
{
    std::cout << "Value: " << i << "\n";
    return i;
}

int main()
{
    int i = 0;
    Slot<int> someCallback = bind( fun_ptr(foo), i );
    ++i; //added to show that late evaluation would be a non-trivial difference
    int result = someCallback();
    assert( result == 0 );
    return 0;
}

Leider habe ich nicht in der Lage gewesen zu finden, jede Bezugnahme auf die Bindung/neubindung mit Bezug auf c# - Delegaten. Bin ich etwas fehlt? Gibt es eine radikal andere Weise, dies zu tun in c#?

InformationsquelleAutor Catskul | 2010-01-20
Schreibe einen Kommentar