C# 中的 Action 和 Func 委托

2024年 5月 30日 36.6k 0

在C#中,Action和Func是两种常用的泛型委托,它们为开发者提供了一种类型安全的方式来定义和处理方法引用。Action和Func的主要区别在于,Action用于封装没有返回值(即返回类型为void)的方法,而Func则用于封装有返回值的方法。

C# 中的 Action 和 Func 委托-1

Action委托

Action委托用于表示接受特定类型参数并不返回任何值(void)的方法。T在这里是一个占位符,代表委托可以接受的参数类型。Action可以有多个类型参数,比如Action,最多可以支持16个类型参数。

示例代码:

using System;

class Program
{
    static void Main()
    {
        // 定义一个 Action 委托实例,并关联一个方法
        Action greet = Greet;
        
        // 调用委托实例
        greet("World");
    }
    
    static void Greet(string name)
    {
        Console.WriteLine($"Hello, {name}!");
    }
}

在这个例子中,我们定义了一个Greet方法,它接受一个字符串参数并不返回任何值。然后,我们创建了一个Action委托实例,并将其关联到Greet方法上。最后,我们通过委托实例调用了Greet方法。

Func委托

与Action不同,Func委托用于表示具有返回值的方法。Func的第一个类型参数是输入参数的类型,最后一个类型参数是返回值的类型。例如,Func表示接受一个int参数并返回一个int值的方法。

示例代码:

using System;

class Program
{
    static void Main()
    {
        // 定义一个 Func 委托实例,并关联一个方法
        Func square = CalculateSquare;
        
        // 调用委托实例并打印结果
        int result = square(5);
        Console.WriteLine($"The square of 5 is {result}.");
    }
    
    static int CalculateSquare(int number)
    {
        return number * number;
    }
}

在这个例子中,我们定义了一个CalculateSquare方法,它接受一个整数参数并返回一个整数结果。然后,我们创建了一个Func委托实例,并将其关联到CalculateSquare方法上。最后,我们通过委托实例调用了CalculateSquare方法,并打印了结果。

总结

Action和Func委托是C#中非常有用的工具,它们提供了一种简洁、类型安全的方式来引用和调用方法。通过使用这些委托,开发者可以更加灵活地编写可重用的代码,并轻松地实现回调函数和事件驱动的设计模式。在实际开发中,根据方法是否有返回值来选择使用Action还是Func委托是非常重要的。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论