文章标题
来源:互联网 发布:mac上用word办公软件 编辑:程序博客网 时间:2024/05/17 03:05
using UnityEngine;
using System.Collections;
// 回调函数就是把一个方法作为另一个方法的参数,去执行。如将 A 方法作为 B 方法的参数,在 B 方法中调用 A 方法
//举个例子说明:妈妈在做饭,没有酱油了,然后妈妈让爸爸去买酱油,爸爸看到哥哥和弟弟没事做。
//爸爸把钱给哥哥或者弟弟,委托他们中的一个去买酱油。妈妈只是要酱油,所以无论爸爸去买,还是
//爸爸委托哥哥或弟弟去买,只要是把酱油买回来,妈妈就能用了,所以妈妈要的结果就是拿到酱油
public class EE : MonoBehaviour {
//首先定义一个买东西的委托委托, 包含两个参数, 参数 1 购买个数,参数2 商品名字,返回类型为 void
public delegate void BuyHandler(int count, string goods);
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.A))
{
//爸爸委托哥哥去买酱油
FatherBuySomeSoy( 1, “Soy”, OlderBrother);
}
if (Input.GetKeyDown(KeyCode.D))
{
//爸爸委托弟弟去买酱油
FatherBuySomeSoy( 1, “Soy”, YoungerBrother);
}
//结果是不管爸爸委托哥哥还是弟弟去买酱油,最终都会把酱油买回来,妈妈能用到酱油
}
//定义方法,爸爸买东西
//参数1 购买数量,参数 2 购买商品名字,参数3 委托方法(实现购买商品的方法)
private void FatherBuySomeSoy(int count, string goods, BuyHandler buyHandler)
{
//爸爸委托 buyHandler 买酱油
buyHandler( count, goods); // 该方法实现购买商品的过程
}
//哥哥去买, 参数 1 购买个数,参数 2 购买商品名字
private void OlderBrother(int count, string goods)
{
Debug.Log(“OlderBrother Bought ” + count + ” ” + goods);
}
//弟弟去买, 参数 1 购买个数,参数 2 购买商品名字
private void YoungerBrother(int count, string goods)
{
Debug.Log(“YoungerBrother Bought ” + count + ” ” + goods);
}
}
该例子是在Unity中测试的,和纯C#代码没什么区别
运行项目:
按下 A 按键结果如下
按下 D 按键结果如下
爸爸委托哥哥和弟弟两种方法,都达到了买酱油的目的
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 运维学习12
- 纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
- react native Touchable 系列组件使用详解
- C++中局部变量、全局变量、静态局部变量、静态全局变量
- C++实验4—输出星号图
- 文章标题
- Java读取Excel文件
- OpenCV Python教程(2、图像元素的访问、通道分离与合并)
- Html5页面开发app之查询按钮悬浮窗
- 存储管理
- 前端跨域
- hrbust 1143 泉水(深搜的简单应用)
- Tomcat 7 配置MySQL/Oracle JDBC
- zookeeper 工具类以及利用InterProcessLock 创建分布式锁