Avatar ·

Wie übergibt man eine Methode als Parameter an eine andere Methode in C#?

Hallo zusammen! Ich habe gerade angefangen, C# zu lernen, und bin auf ein Problem gestoßen. Ich habe mehrere Methoden, die fast dasselbe tun, aber mit kleinen Unterschieden in der Logik. Zum Beispiel möchte ich eine Operation auf ein Array von Zahlen anwenden: entweder alle Elemente addieren, multiplizieren oder das Maximum finden. Anstatt drei separate Schleifen zu schreiben, möchte ich eine universelle Methode schreiben, die eine "Aktion" (eine andere Methode) als Parameter akzeptiert und auf das Array anwendet. Ich habe es so versucht: ```csharp public void ProcessArray(int[] numbers, ??? operation) { for (int i = 0; i < numbers.Length; i++) { numbers[i] = operation(numbers[i]); } } ``` Aber ich weiß nicht, was ich anstelle von `???` schreiben soll. Ich habe von Delegaten gehört, verstehe aber nicht, wie man sie richtig deklariert und verwendet. Könnt ihr es an einem einfachen Beispiel erklären, wie man eine Methode (z.B. `int Square(int x)`) an eine andere Methode übergibt? Außerdem würde mich interessieren, ob man Methoden mit unterschiedlicher Anzahl von Parametern übergeben kann. Und gibt es im modernen C# einfachere Alternativen zu Delegaten?