Unity 3D委托的多种用法


本文提供全流程,中文翻译。

Chinar 坚持将简单的生活方式,带给世人!

(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)


Chinar —— 心分享、心创新!

助力快速理解委托的作用、用法

为新手节省宝贵的时间,避免采坑!

Chinar 教程效果:


  • 1

    • Entrust —— Delegate委托
  • 2
    • Action —— Action委托
  • 支持
    • May Be —— 搞开发,总有一天要做的事!

全文高清图片,点击即可放大观看 (很多人竟然不知道)


1

Entrust —— Delegate委托

Delegate —— 委托(像类一样需要声明,且返回类型要和对应的方法一致)

class Program{private delegate string ChinarA(); //定义是一个委托类型:返回值为 stringprivate delegate void ChinarB();/// <summary>/// 测试方法B/// </summary>static void MethodB(ChinarB b){b(); //委托可以直接传递方法来}static void Method1(){Console.WriteLine("方法1");}static void Method2(){Console.WriteLine("方法2");}static void Main(string[] args){int     x  = 40;ChinarA a  = new ChinarA(x.ToString); //实例化一个 委托对象:a。 并且 a 指向了ToString方法ChinarA a1 = x.ToString;              //实例化一个 委托对象:a1。 并且 a1 指向了ToString方法string s  = a();         //通过调用委托,即可完成调用函数string s1 = a1.Invoke(); //同样完成调用Console.WriteLine(s);Console.WriteLine(s1);/** 委托类型可以当做一个参数来用*/ChinarB b = Method1;MethodB(b);b = Method2;MethodB(b);Console.ReadLine();}

输出:

40
40
方法1
方法2

2

Action —— Action委托

Action —— 委托(具备传入参数,但不具备返回值)

Action < T > —— 委托(尖括号,最多支持16个类型的传入)

对象的声明,该委托对象 对应 相应参数类型的函数

    /// <summary>/// 测试Action类/// </summary>class Program{/// <summary>/// 程序主入口/// </summary>/// <param name="args"></param>static void Main(string[] args){Action a = MethodA; //Action 是系统 为了方便,自定义的一个委托类型,可以指向一个没有参数、没有返回值的函数Action<int> b = MethodB; //定义了一个委托对象b,可指向一个 拥有int类型形参的函数,照样没有返回值Action<string> c = MethodC; //定义了一个委托对象c,可指向一个 拥有string类型形参的函数,照样没有返回值Action<int, string, float> d = MethodD; //定义了一个委托对象c,可指向一个 拥有3个类型形参的函数,照样没有返回值/** Action<T> 对象的声明,尖括号中最多支持传入16个类型。  该委托对象 对应 相应参数类型的函数*/a();b(666);c("Chinar");d.Invoke(1, "3", 1);Console.ReadLine();}/// <summary>/// 有3个形参的方法/// </summary>/// <param name="arg1">整形</param>/// <param name="arg2">字符串</param>/// <param name="arg3">浮点</param>private static void MethodD(int arg1, string arg2, float arg3){Console.WriteLine("方法D:" + arg1 + arg2 + arg3);}private static void MethodC(string obj){Console.WriteLine("方法C:" + obj);}static void MethodB(int b){Console.WriteLine("方法B:" + b);}static void MethodA(){Console.WriteLine("方法A");}}

输出:

方法A
方法B:666
方法C:Chinar
方法D:131

支持

May Be —— 搞开发,总有一天要做的事!

拥有自己的服务器,无需再找攻略!

Chinar 提供一站式教程,闭眼式创建!

为新手节省宝贵时间,避免采坑!

先点击领取 —— 阿里全产品优惠券 (享受最低优惠)

1 —— 云服务器超全购买流程 (新手必备!)

2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)

3—— Windows 服务器配置、运行、建站一条龙 !

4 —— Linux 服务器配置、运行、建站一条龙 !



Chinar


END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

转载于:https://www.cnblogs.com/chinarbolg/p/9601436.html

Unity 3D委托entrust相关推荐

  1. 《Unity 3.x游戏开发实例》一1.5 欢迎来到Unity 3D

    本节书摘来异步社区<Unity 3.x游戏开发实例>一书中的第1章,第1.5节,作者: [加]Ryan Henson Creighton 译者: 师蓉 责编: 陈冀康,更多章节内容可以访问 ...

  2. Unity 3D网络游戏实战 pdf

    Unity 3D网络游戏实战(全) 目录: 掌握Unity3D基本元素 1.1 简单的游戏 1.1.1在场景中创建一个立方体 1.1.2编写可以使立方体运动的程序 1.1.3测试游戏1.1.4总结1. ...

  3. 《Unity 3.x游戏开发实例》——1.5节欢迎来到Unity 3D

    本节书摘来自异步社区<Unity 3.x游戏开发实例>一书中的第1章,第1.5节欢迎来到Unity 3D,作者邓文渊,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  4. Unity 3D学习视觉脚本无需编码即可创建高级游戏

    在本课程中,您将学习如何在Unity中使用可视化脚本(以前称为Bolt)以及如何在不编写一行代码的情况下创建自己的高级游戏所需的一切.本课程将教你如何掌握可视化脚本,即使你以前没有任何关于unity或 ...

  5. Unity三维游戏开发C#编程大师班 Masterclass In C# Programing Unity 3D Game Development FPS

    本课程采用现代游戏开发(Unity 2021)的最新内容和最新技术 学习任何东西的最好方法是以一种真正有趣的方式去做,这就是这门课程的来源.如果你想了解你看到的这些不可思议的游戏是如何制作的,没有比这 ...

  6. Unity 3D为策略游戏创建地图学习教程

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:30节课(7h 42m) |大小:5 GB 含项目文 ...

  7. Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D C#: Learn To Code Making 3D Games

    Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D & C#: Learn To Code Making 3D Games Full Guide To Unit ...

  8. 聊聊在博客园写博客的这两年《Unity 3D脚本编程:使用C#语言开发跨平台游戏》正式出版...

    版本状态: 2016.9 第一次印刷 (2016.11 输出到台湾) 2017.1 第二次印刷 2017.5 第三次印刷 2017.5 电子书上线:Unity 3D脚本编程--使用C#语言开发跨平台游 ...

  9. Unity 3D:在现有的Android游戏场景中显示AdMob的横幅

    2019独角兽企业重金招聘Python工程师标准>>> 关于如何在现有的Android项目现场显示AdMob的横幅,在一个Android项目中使用一个简单的Android JAR文件 ...

最新文章

  1. 网管员应掌握好的学习方法
  2. win下手动编译狂魔的必备C/C++编译环境
  3. 上传EXCEL到ABAP内表
  4. AndroidStudio中使用XML和Java代码混合控制UI界面实现QQ相册照片列表页面
  5. EasyNVR摄像机网页无插件直播方案H5前端构建之:关于接口调用常见的一些问题(401 Unauthorized)...
  6. winform响应时间最长是多少分钟_史上最短职业赛是多少时间?《王者荣耀》中国队只花了三分钟...
  7. Picocli 2.0:类固醇上的Groovy脚本
  8. 解决迭代器调用next方法时报错:StopIteration
  9. mes系统和plc通讯案例_「MES系统 | 应用案例」奥松电子云MES系统项目启动大会顺利召开...
  10. cdrx7显示重新启动计算机,CorelDRAW X7检测提示警告窗口及详细安装教程方法
  11. 图像的特征提取——HOG特征、Harr特征、LBP特征
  12. hard link soft link
  13. 阿里云云解析DNS各种概念深度剖析
  14. 十年之前..., 十年之后...
  15. java.lang.ClassNotFoundException: org.springframework.boot.bind.RelaxedDataBinder
  16. Android 云游戏实现
  17. 油耗笔记OilNote-记油耗App
  18. iphone html5 浏览器缓存文件,html5中localStorage 在苹果设备上总结
  19. 关于正则表达式里含有空格的问题
  20. 【观察】不断打破手机行业创新边界,三个维度解读vivo NEX双屏版

热门文章

  1. 2021最新Spring Security知识梳理
  2. leetcode 385. 迷你语法分析器
  3. 两个软硬程度一样的鸡蛋,它们在某一层摔下会碎,有个100层的建筑,要求最多用两个鸡蛋确 定鸡蛋安全下落的临界位置,给出临界位置?如果是n层楼,m个鸡蛋,请给出确定临界位置的算法
  4. 伤害世界怎么自建服务器,《伤害世界Hurtworld》服务器架设方法图文详解 怎么开服?...
  5. 编码原则总结:面向对象设计的SOLID原则
  6. Tomcat应用部署
  7. 在移动设备上使用M3G编程教程(转)
  8. 你们要的《一曲相思》附下载
  9. 苹果Mac电脑怎么卸载软件?
  10. 关于Mac共享WiFi网络,看这里就够了(2 4G,5G , ipv6)