如何在 C# 函式中傳遞一個方法作為引數

Minahil Noor 2023年1月30日 2020年10月15日
  1. 在 C# 中使用 Func 代表傳遞一個方法作為引數
  2. 在 C# 中使用 Action 委派來傳遞一個方法作為引數
如何在 C# 函式中傳遞一個方法作為引數

本文將介紹在 C# 函式中傳遞一個方法作為引數的不同方法。

  • 使用 Func 委託
  • 使用 Action 代表

在 C# 中使用 Func 代表傳遞一個方法作為引數

我們將使用內建的 Func delegate 來傳遞一個方法作為引數。delegate 的作用就像一個函式指標。使用這個委託的正確語法如下。

public delegate returnType Func<in inputType, out returnType>(InputType arg);

內建的委派 Func 有 N 個引數。它的引數詳情如下。

引數 說明
inputType 強制 它是這個委託的輸入值的型別,可以有 N 個輸入。
returnType 強制 它是返回值的型別。該委託的最後一個值被視為是返回型別。

下面的程式顯示了我們如何使用 Func 委託來傳遞一個方法作為引數。

public class MethodasParameter
{
    public int Method1(string input)
    {
        return 0;
    }

    public int Method2(string input)
    {
        return 1;
    }

    public bool RunMethod(Func<string, int> MethodName)
    {
        int i = MethodName("This is a string");
        return true;
    }

    public bool Test()
    {
        return RunMethod(Method1);
    }
}

在 C# 中使用 Action 委派來傳遞一個方法作為引數

我們也可以使用內建的委託 Action 來傳遞一個方法作為引數。使用這個委託的正確語法如下。

public delegate void Action<in T>(T obj);

內建的委託人 Action 可以有 16 個引數作為輸入。它的詳細引數如下。

引數 說明
T 強制 它是這個委託的輸入值的型別。可以有 16 個輸入值。

下面的程式顯示了我們如何使用 Action 委託來傳遞一個方法作為引數。

public class MethodasParameter
{
    public int Method1(string input)
    {
        return 0;
    }

    public int Method2(string input)
    {
        return 1;
    }

    public bool RunTheMethod(Action myMethodName)
 {
      myMethodName();
      return true;
 }
  RunTheMethod(() => Method1("MyString1"));
}

相關文章 - Csharp Method

相關文章 - Csharp Parameter