using System;
using UnityEngine;
/// <summary>
/// UnityAction、Action、Func本质都是delegate
/// Action和Func都可带4个参数,但Func可以返回值,Action不行
/// </summary>
public class ActionAndFunc : MonoBehaviour {
void Start () {
//Action,匿名委托
IncreaseArea(100, delegate(int s) { Debug.Log("匿名委托,得到结果:" + s); });
//Action,非匿名委托
Action<int> action = DisposeArea;
IncreaseArea(100, action);
//IncreaseArea(100, DisposeArea);
//Func
IncreaseArea(100,8, GetAreaTow);
Debug.Log("Func:" + IncreaseArea(100, 8, GetAreaTow));
}
//处理结果
private void DisposeArea(int area)
{
Debug.Log("非匿名委托,得到结果:" + area);
}
//计算面积
private int GetAreaTow(int width)
{
return width * width;
}
public void IncreaseArea(int area,Action<int> action)
{
int Area = area + 1;
//把结果当参数
action(Area);
}
//获取总面积
public int IncreaseArea(int area,int width, Func<int,int> func)
{
return area + func(width);
}
}
ActionAndFunc简单例子
最新推荐文章于 2022-06-01 08:22:37 发布