Announcement

Collapse
No announcement yet.

C# Delegates

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • C# Delegates

    Hallo,<br>hat evt. jemand begriffen was Delegates genau sind und was man damit machen kann?<br>Jens Schumann

  • #2
    Hallo,

    ein <i>Delegate</i> ist ein typsicherer, objektorientierter Funktionszeiger, über den man verschiedene Implementierungen einer Methode aufrufen kann. Am besten ist der Einsatz mit der <i>Ereignisbehandlungsmethode</i> von Delphi vergleichbar.

    Zum Beispiel könnte das so aussehen:
    <pre>
    Public delegate int GenericFunction(int a, int b);

    Private int AddVersion1(int a,int b)
    {
    }

    Private int AddVersion2(int a,int b)
    {
    }
    </pre>
    Ein Delegate "passt" für zwei Methoden, wobei man im Programm nun jeweils eine der Methoden zuweisen kann:
    <pre>
    GenericFunction fnAdd = new GenericFunction(AddVersion1);
    </pre>
    oder
    <pre>
    GenericFunction fnAdd = new GenericFunction(AddVersion2);
    </pre>
    Beim Aufruf von <i>fnAdd</i> wird dann die Methode ausgeführt, die zur Zeit diesem Delegate zugewiesen wurde

    Comment


    • #3
      Hallo Herr Kosch,<br>vielen Dank unter http://www.csharphelp.com/ haben ich weiterführendes gefunden.<br>Jens Schuman

      Comment


      • #4
        Über Delegates kann ich aber auch eine ganze Reihe von Funktionen mit gleichen Parametern aufrufen. Wie diese abgearbeitet werden, ist mir allerdings noch nicht ganz klar.
        Dies kann über (unter verwendung des bestehenden Codes) wie folgt implementiert werden:
        <i>

        GenericFunction fnAdd = new GenericFunction(AddVersion1);
        fnAdd += new GenericFunction(AddVersion2);

        <i&gt

        Comment

        Working...
        X