[UnityC#事件委托]对委托事件的学习与实践
很多人对 委托 事件 进行了 写文章,本文不一定是最好的,但是是
最“看图识字”的。
-------------------------------------------------------------------------------------
1.通过对 参考资料 1 进行 测试。
对象的配置
“T_Delegate_Event”代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class T_Delegate_Event : MonoBehaviour {//public Button Button_1;//+1//public Button Button_2;//-1private delegate void DebugString(string debug_str);//定义一个委托public void DebugNameOfCN(string str)//输出中文名字{Debug.Log(" 中文名字: "+str);}public void DebugNameOfEN(string str)//输出英文名字{ Debug.Log(" EN Name: " + str);}private DebugString HandlerDebugString;//定义一个委托的变量事件public void DebugEventButon_1(){HandlerDebugString = DebugNameOfCN;HandlerDebugString("尼古拉斯 赵思");}public void DebugEventButon_2(){HandlerDebugString = DebugNameOfEN;HandlerDebugString("Nicholas Zhao four");}}
结果:
按下对应的按钮,显示 对应的名字
-------------------------------------------------------------------------------------
2.测试委托事件的多路广播
代码:在测试 1的基础上加上 start函数 的内容
void Start(){//给委托对象赋值 HandlerDebugString = DebugNameOfCN;HandlerDebugString("1***尼古拉斯 赵思");Debug.Log("................................");//给委托对象再加一个事件,叫多路广播 HandlerDebugString += DebugNameOfEN;HandlerDebugString("2***Nicholas Zhao four");Debug.Log("................................");//输出中文试试 HandlerDebugString("3***尼古拉斯 赵思");Debug.Log("................................");//给委托对象减去一个事件 HandlerDebugString -= DebugNameOfCN;HandlerDebugString("4***Nicholas Zhao four");}
显示结果:
逻辑图:
-------------------------------------------------------------------------------------
把 上图 变成 下图,样式
变成了
2.1这是正常 的情况
情况如下所示
2.2把 += 变成 了 =
结果如下所示
由2.1和2.2得出结论,委托声明类似 class 类的声明,
private delegate void DebugString(string debug_str);//定义一个委托
定义一个 事件 类似 class 类 变量
private DebugString HandlerDebugString;//定义一个委托的变量事件
委托变成private class test_class{....}
事件变成private test_class test_event;
也是一样的。
而事件 一开始 没有 赋予 函数的时候,就没有事件。
当事件 赋予 了一个 函数 的值 的时候。
HandlerDebugString = DebugNameOfCN;
HandlerDebugString("1***尼古拉斯 赵思");
就会显示
当事件 已经 赋予 了 一个 函数值,再 += 一个 函数的时候。
HandlerDebugString = DebugNameOfCN;
HandlerDebugString("1***尼古拉斯 赵思");
HandlerDebugString += DebugNameOfEN;
HandlerDebugString("2***Nicholas Zhao four");
Debug.Log("................................");
就有了2个事件,显示
-------------------------------------------------------------------------------------
参考资料:
1.[unity3d]unity中C#委托的应用
http://blog.csdn.net/dingxiaowei2013/article/details/18428727
2.
3.
4.
5.
6.
[UnityC#事件委托]对委托事件的学习与实践相关推荐
- 【C#学习】delegate(委托) 和 event(事件)
C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针.委托(Delegate) 是存有对某个方法的引用的一种引用类型变量.引用可在运行时被改变.在C#中方法不能作为参数直接传递,必须 ...
- 13前端学习之WebAPI(三):节点操作、事件高级、DOM事件流、事件委托冒泡
文章目录 一.节点操作: 1. 删除节点: 1.2. 案例:删除留言 2. 赋值(克隆)节点: 3. 案例:动态生成表格: 3.1 案例分析: 3.2 实现: 4. 创建元素的三种方式: 4.1 区别 ...
- 事件绑定、事件监听、事件委托
2019独角兽企业重金招聘Python工程师标准>>> 在JavaScript的学习中,我们经常会遇到JavaScript的事件机制,例如,事件绑定.事件监听.事件委托(事件代理)等 ...
- web api、获取DOM元素的方式、事件理解、click事件在移动端300ms延时、事件对象、事件委托、常见事件类型
web api: API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力 ...
- 第三天:js中的事件提高篇(事件流,事件对象,事件委托深层次理解)
目录 前言 一,基础部分 1.1 js监听并绑定事件 1.2 删除事件绑定 二,事件流 2.1 事件流是什么 2.2 事件流模型 2.3 捕获与冒泡具体示例 2.3.1 addEventListene ...
- C#:委托和自定义事件
1. 委托概述 "委托"相当于C++中的"函数指针",委托必须与所要"指向"的函数在"参数"和"返回类型&qu ...
- 利用反射获得委托和事件以及创建委托实例和添加事件处理程序
最近一些都在看关于反射的内容,然后在网上大多数都是通过反射获得类型中方法,属性.字段这样的文章, 但是对于如何获得委托类型怎么去实现的却没有, 所以写下这边篇文章来让自己以后很好的复习以及想了解的朋友 ...
- 1、jquery事件绑定和委托的实现
jQuery的事件绑定和委托可以使用 on().one().bind().live().delegate()等方法实现. 1.on() : 语法:$(selector).on(event,child ...
- 委托模型和事件模型 [C#]
1. 多播委托 与委托有关的语法: 定义委托:<modifiers> delegate <return_type> <delegate_name> (< ...
最新文章
- 为什么很多SpringBoot开发者放弃了Tomcat,选择了Undertow
- 科研文献|粪便污染可以解释人为影响环境中抗生素耐药基因丰度
- 禁用Grid上的自动排序功能
- java设计模式---合成模式
- 字节跳动涉代码抄袭被诉陪22.74亿,连错误的函数都搬?
- 《快学Scala》第二章 控制结构和函数
- 图像重建算法_降噪重建技术路在何方?
- golang小程序试验(二)
- 网页javascript部分
- 杭电1425 sort
- 计算机网络中职试题,中职计算机网络基础试题
- css 实现一个尖角_css实现气泡的小尖角效果
- msl3等级烘烤时间_MSL等级说明
- A*算法解决8数码问题python实现
- 吴恩达机器学习课程笔记(英文授课) Lv.1 新手村(回归)
- 7-139 手机话费 (10分)
- NOIP模拟 洛阳怀(质因数分解)
- 浪漫是浪漫,不浪漫也是浪漫
- 刻录车载CD音乐光盘的历程
- 【陀螺财经】数字货币每日行情简报0211
热门文章
- 【Spring boot 项目实践】基于Spring boot 的外卖系统
- 关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript
- 深度学习新王者AutoML和NAS
- js创建二维数组小坑
- mpv播放器 —— 一个免费的、开源的、跨平台的媒体播放器
- WAIC预热 | 赋能企业数字化转型,容智信息×亿欧“AI商业落地论坛”重磅来袭
- 华科计算机博导刘云生论文,关于对博士学位论文进行盲审的通知
- 一文读懂CRNN+CTC文字识别
- office2021官方正版镜像
- 围住神经猫C++/C简单实现网页小游戏【课程实践】