所属范围:Action 和 Func 是 C# 语言标准库中的委托类型,可在任何 C# 项目里使用;UnityAction 是 Unity 引擎专门定义的委托类型,只能在 Unity 项目中使用。
返回值:Action 和 UnityAction 封装的方法没有返回值;Func 封装的方法有返回值。
使用场景:Action 和 Func 适用于普通的 C# 开发场景,用于实现回调、事件处理等功能;UnityAction 主要用于 Unity 项目中的事件系统,方便处理游戏对象的交互事件。
上述部分用于复习记忆,为了使读者深入了解,下面对他们进行详细的代码描述。
目录
1.Action
无参数的 Action
带参数的 Action
2.Func
无参数但有返回值的 Func
带参数和返回值的 Func
3.UnityAction
1.Action
 
在 C# 里,Action 是一个预定义的委托类型。它用于封装一个没有返回值的方法。Action 有多种重载形式,能够接受不同数量和类型的参数。
无参数的 Action
 
        Action simpleAction = () => Console.WriteLine("This is a simple action.");simpleAction(); 
运行结果:

带参数的 Action
 
        Action<int, string> parameterizedAction = (num, str) => Console.WriteLine($"Number: {num}, String: {str}");parameterizedAction(10, "Hello"); 
运行结果:

2.Func
 
同样是预定义的委托类型,不过它封装的方法有返回值。Func 的最后一个泛型参数代表返回值的类型,前面的泛型参数表示方法的参数类型。
无参数但有返回值的 Func
 

运行结果:

带参数和返回值的 Func
 

运行结果:

3.UnityAction
 
UnityAction 是 Unity 引擎为了方便事件处理而定义的委托类型。它类似于 C# 中的 Action,用于封装没有返回值的方法。和 Action 一样,UnityAction 也有接受不同数量参数的重载形式。在 Unity 中,它常被用于事件系统,像按钮点击事件、动画事件等。

