2023/11/9——C#——Action和Func、 委托的多播、事件对象绑定、普通的匿名函数和lambda匿名函数、运算符重载

1.Action和Func

        Action委托表示一个void返回类型的方法

        Func委托表示一个带返回类型的方法

在 C# 中,ActionFunc 是泛型委托类型,它们用于定义函数的签名和参数类型。这两个类型都经常与 Lambda 表达式一起使用,以提供一种简洁的方式来传递和执行函数/方法。

Action:

  • Action 是一个没有返回值的泛型委托类型,它可以接受零到 16 个参数。
  • Action 可用于表示将执行某些操作但没有返回值的方法或 Lambda 表达式。
  • 例如,Action<int, string> 表示一个接受一个整数和一个字符串参数的方法或 Lambda 表达式,但没有返回值。

示例:

// 使用 Action 执行一个没有参数和返回值的操作
Action operation = () =>
{
    Console.WriteLine("Operation executed.");
};

// 使用 Action 执行一个接受参数但没有返回值的操作
Action<int, string> printMessage = (count, message) =>
{
    for (int i = 0; i < count; i++)
    {
        Console.WriteLine(message);
    }
};

// 调用 Action
operation();  // 输出: Operation executed.
printMessage(3, "Hello!");  // 输出: Hello! Hello! Hello!

Func:

  • Func 是一个带有返回值的泛型委托类型,它可以接受零到 16 个输入参数,并返回一个结果。
  • Func 可用于表示具有指定参数和返回类型的方法或 Lambda 表达式。
  • 最后一个类型参数表示返回类型。

示例:

// 使用 Func 表示一个没有参数但返回整数的方法或 Lambda 表达式
Func<int> generateRandomNumber = () =>
{
    Random random = new Random();
    return random.Next();
};

// 使用 Func 表示一个接受字符串参数并返回长度的方法或 Lambda 表达式
Func<string, int> getStringLength = (str) => str.Length;

// 调用 Func
int randomNumber = generateRandomNumber();  // 生成一个随机数
int length = getStringLength("Hello");  // 获取字符串 "Hello" 的长度

Console.WriteLine(randomNumber);  // 输出随机数
Console
  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值