Announcement

Collapse
No announcement yet.

Funktionen als Parameter an Funktion übergeben?

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

  • Funktionen als Parameter an Funktion übergeben?

    Hallo zusammen

    Ich habe ein kleines Problem.
    Und zwar habe ich eine relativ allgemeine Funktion, die ich an mehreren Stellen wiederverwenden kann.
    Diese Funktion muss jetzt aber noch zwei weitere Dinge behandeln, die ich nicht mehr allgemein lösen kann.
    Deshalb würde ich der allgemeinen Funktion gerne als Parameter die zwei spezialisierten Funktionen übergeben, die dann Ihren Teil erledigen,
    und falls Nothing übergeben wurde und es für diese Funktionen doch etwas zu tun gäbe, eine Exception ausgeben.
    Natürlich sollen diese Funktionen Parameter und Rückgabewert haben...

    Weiss jetzt nicht genau, wie ich das lösen soll. Sind Delegates der richtige Weg?
    Möchte das eben nicht mit Events lösen, da ich dann ja nicht weiss, ob die Events behandelt werden oder nicht...!?

    Danke im Voraus

  • #2
    Hallo,

    Sind Delegates der richtige Weg?
    Ja das ist eine Möglichkeit.
    Hinweis: Es gibt schon vordefiniert Delegaten wie Action, Action<T>, Func<T>, etc., diese können sehr hilfreich sein denn es muss nicht immer selbst ein Delegat deklariert werden.

    Es gibt noch eine weiter Möglichkeit und diesen Weg würde ich gehen. Dieser wäre:
    Erstelle eine Basisklasse welche die allgemeine Methode zur Verfügung stellt. Für die speziellen Methoden erstellt du dann spezielle Klasse die von der Basisklasse erben und die Methode überschreiben.
    Dieses Vorgehen wird auch als Strategie bzw. Strategie-Muster bezeichnet.

    Es sind beide Wege möglich. Der Vorteil der Klassen ist dass die Daten welche von der Methode benötigt werden gekapselt werden können.


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Hallo

      Danke für deine Antwort.
      Ich denke aber, Delegates wären für mich passender.
      Weil ich verwende Funktionen aus einem Modul, das heisst ich habe gar keine Verschiedene Klasseninstanzen und möchte das auch nicht, damit ich das aus verschiedenen Programmmodulen möglichst einheitlich und mit möglichst wenig Anpassungen nutzen und die Programmmodule erweitern/vermehren kann.
      Ist jetzt vielleicht nicht ganz verständlich, mag das aber jetzt nicht im Detail erklären.

      Danke auf jeden Fall, hat mir geholen

      Comment

      Working...
      X