C# 関数でメソッドをパラメータとして渡す方法
Minahil Noor
2021年3月24日
2020年10月19日
Csharp
Csharp Method
Csharp Parameter

この記事では、C# の関数でメソッドをパラメータとして渡す方法の違いを紹介します。
Func
デリゲートを使用するAction
デリゲートを使用する
C# で Func
デリゲートを使ってメソッドをパラメータとして渡す
ここでは、組み込みのデリゲート Func
を使用して、メソッドをパラメータとして渡します。デリゲートは関数ポインタのように動作します。このデリゲートを使用するための正しい構文は以下の通りです。
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"));
}