如何在 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"));
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。