C# 回调函数
2015-02-11 11:16
218 查看
C# 回调函数
该例子是在Unity中测试的,和纯C#代码没什么区别
运行项目:
按下 A 按键结果如下
按下 D 按键结果如下
爸爸委托哥哥和弟弟两种方法,都达到了买酱油的目的
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 按键结果如下
爸爸委托哥哥和弟弟两种方法,都达到了买酱油的目的
相关文章推荐
- 在C#里面调用带有回调函数和自定义结构体的DLL的例程
- C#下Socket对象的BeginReceive方法,执行后竟然不调用AsyncCallback里的回调函数
- C#中的回调函数
- C#中带回调函数的WinApi调用
- 由c#事件监听、回调函数引发观察者模式
- c# 调用c++带有回调函数方法的实现
- C#委托,回调函数
- MSDN中回调函数的讲解及其C#例子:用委托实现回调函数
- 关于C#中的WEB开发的回调函数的实现
- 刚遇到的一个C#中调用api,回调函数的问题
- MSDN中回调函数的讲解及其C#例子:用委托实现回调函数
- C#实现API(DLL)回调函数[转]
- 浅析C#中的回调函数
- c# 如何调用非托管函数3-实现回调函数
- MSDN中回调函数的讲解及其C#例子:用委托实现回调函数
- 在C#里面调用带有回调函数和自定义结构体的DLL的例程——转载
- C#的委托vsC++的回调函数
- C# 回调函数
- 关于C#中调用C++dll传递回调函数的问题
- C++和C#中的回调函数