C# Action用法
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# Action用法相关的知识,希望对你有一定的参考价值。
Action是无返回值的泛型委托
可以使用 Action<T1, T2, T3, T4> 委托以参数形式传递方法,而不用显式声明自定义的委托。封装的方法必须与此委托定义的方法签名相对应。也就是说,封装的方法必须具有四个均通过值传递给它的参数,并且不能返回值。(在 C# 中,该方法必须返回 void)通常,这种方法用于执行某个操作。
1、Action 表示无参,无返回值的委托
2、 Action<int,string> 表示有传入参数int,string无返回值的委托
3、Action<int,string,bool> 表示有传入参数int,string,bool无返回值的委托
4、 Action<int,int,int,int>
表示有传入4个int型参数,无返回值的委托
5、 Action至少0个参数,至多16个参数,无返回值。
class Program
{
static void Main(string[] args)
{
//循环调用,action不传参
List<Action> actions = new List<Action>();
for (int i = 0; i < 10; i++)
{
//因为是按地址传递参数,所以要声明变量,不如结果都是10
int k = i;
actions.Add(() => Console.WriteLine(k));
}
foreach (Action a in actions)
{
a();
}
//传递两个参数
Action<string, int> action = new Action<string, int>(ShowAction);
Show("张三",29,action);
//传递一个参数
Show("张三",o=>Console.WriteLine(o));
//不传递参数调用
Show(()=>Console.WriteLine("张三"));
}
public static void ShowAction(string name, int age)
{
Console.WriteLine(name + "的年龄:" + age);
}
public static void Show(string name, int age, Action<string, int> action)
{
action(name, age);
}
public static void Show(string name, Action<string> action)
{
action(name);
}
public static void Show(Action action)
{
action();
}
}
输出结果:
0
1
2
3
4
5
6
7
8
9
张三的年龄:29
张三
张三
以上是关于C# Action用法的主要内容,如果未能解决你的问题,请参考以下文章