Action委托和Func委托

Action:没有返回值的委托(void)
Func:有返回值的委托(最后一个泛型参数是返回类型)
它们都是 .NET 内置的泛型委托,用来简化自定义委托的写法,不用自己 delegate 声明。

//语法
Action // 无参无返回
Action // 1个参数
Action<T1, T2> // 2个参数
...最多支持 16 个参数

// 无参数 Action
Action sayHi = () =>
{
Console.WriteLine("Hello Action");
};

sayHi(); // 调用

//带参数 Action
Action printMsg = (msg) =>
{
Console.WriteLine("消息:" + msg);
};

printMsg("你好");

//多参数
Action<int, int> add = (a, b) =>
{
Console.WriteLine(a + b);
};

add(10, 20);

————————————————————————————————————————————————————————

Func
一段有返回值的代码,最后一个泛型类型一定是返回类型

Func // 无参,返回 TResult
Func<T, TResult> // 1个参数,返回 TResult
Func<T1, T2, TResult> // 2个参数,返回 TResult
...最多 16 个参数 + 1 个返回值

无参有返回
Func getRandom = () =>
{
return new Random().Next(1, 100);
};

int num = getRandom();

有参有返回(最常用)
Func<int, int, int> add = (a, b) =>
{
return a + b;
};

int sum = add(3, 5); // 8

字符串返回
Func<string, string> toUpper = (s) => s.ToUpper();

string res = toUpper("hello"); // HELLO

posted @ 2026-04-06 00:13  菜鸟的奋斗军  阅读(2)  评论(0)    收藏  举报