Übergeben Sie eine Funktion als Parameter in C#

Muhammad Maisam Abbas 16 Februar 2024
  1. Übergeben Sie eine Funktion als Parameter mit dem Delegaten Func<> in C#
  2. Übergeben Sie eine Funktion als Parameter in einer anderen Funktion mit dem Delegaten Aktion <> in C#
Übergeben Sie eine Funktion als Parameter in C#

In diesem Lernprogramm werden Methoden zum Übergeben einer Funktion als Parameter in einer anderen Funktion in C# vorgestellt.

Übergeben Sie eine Funktion als Parameter mit dem Delegaten Func<> in C#

Der Delegat Func<T1, T-return> definiert eine Funktion mit dem Parameter T1 und dem Rückgabetyp T-return in C#. Wir können eine Funktion als Parameter innerhalb einer anderen Funktion mit dem Delegaten Func<T1, t-return> übergeben. Das folgende Codebeispiel zeigt uns, wie wir eine Funktion als Parameter innerhalb einer anderen Funktion mit dem Delegaten Func<> in C# übergeben können.

using System;

namespace pass_function_as_parameter {
  class Program {
    static int functionToPass(int x) {
      return x + 10;
    }
    static void function(Func<int, int> functionToPass) {
      int i = functionToPass(22);
      Console.WriteLine("i = {0}", i);
    }
    static void Main(string[] args) {
      function(functionToPass);
    }
  }
}

Ausgabe:

i = 32

Wir haben die Funktion functionToPass(int x) definiert, die einen ganzzahligen Wert als Parameter verwendet, ihn mit 10 inkrementiert und das Ergebnis als ganzzahligen Wert zurückgibt. Wir haben die Funktion functionToPass() als Parameter an die Funktion function() mit dem Delegaten Func<int, int> übergeben. Wir haben den Wert 22 an die Funktion functionToPass() innerhalb der Funktion function() übergeben. In der Hauptfunktion haben wir die Funktion mit dem Funktionsaufruf function(functionToPass) aufgerufen. Der Delegat Func<> kann nur zum Übergeben der Funktionen verwendet werden, die einen bestimmten Wert zurückgeben.

Übergeben Sie eine Funktion als Parameter in einer anderen Funktion mit dem Delegaten Aktion <> in C#

Wenn wir eine Funktion übergeben möchten, die keinen Wert zurückgibt, müssen wir den Delegaten Action<> in C# verwenden. Der Delegat Action<T> funktioniert genauso wie der Funktionsdelegierte. Hiermit wird eine Funktion mit dem Parameter T definiert. Mit dem Delegat Action<> können Sie eine Funktion als Parameter an eine andere Funktion übergeben. Das folgende Codebeispiel zeigt uns, wie wir eine Funktion als Parameter innerhalb einer anderen Funktion mit dem Delegaten Action<> in C# übergeben können.

using System;

namespace pass_function_as_parameter {
  class Program {
    static void functionToPass2(int x) {
      int increment = x + 10;
      Console.WriteLine("increment = {0}", increment);
    }
    static void function2(Action<int> functionToPass2) {
      functionToPass2(22);
    }
    static void Main(string[] args) {
      function2(functionToPass2);
    }
  }
}

Ausgabe:

increment = 32

Wir haben die Funktion functionToPass2(int x) definiert, die einen ganzzahligen Wert als Parameter verwendet, ihn mit 10 inkrementiert und das Ergebnis druckt. Wir haben die Funktion functionToPass2() als Parameter an die Funktion function() mit dem Delegaten Action<int> übergeben. Wir haben den Wert 22 an die Funktion functionToPass2() innerhalb der Funktion function2() übergeben. In der Hauptfunktion haben wir die Funktion mit dem Funktionsaufruf function2(functionToPass2) aufgerufen. Der Delegat Action<> kann nur zum Übergeben von Funktionen verwendet werden, die keinen Wert zurückgeben.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Verwandter Artikel - Csharp Function