























using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestConsoleFramwork { class Player { public delegate void OnAttackDelegate(int JianShaoBloodNumber); public OnAttackDelegate OnAttack=null; //点击按钮释放AOE攻击后,调用敌人的被伤害方法 //AOE是一种攻击 public void DoAOE(int JianShaoBloodNumber) { if (OnAttack!=null) { //攻击参数为10滴血 OnAttack(JianShaoBloodNumber); } } } class Enemy { private int bloodNumber = 100; //减少血量的方法(减少的血量) public void JianShaoBlood(int JianShaoBloodNumber) { bloodNumber-=JianShaoBloodNumber; Console.WriteLine("中招了,Enemy减血"+ JianShaoBloodNumber); Console.ReadLine(); } } internal class DuoBoWeiTuo { static void Main(string[] args) { Enemy enemy0 = new Enemy(); Enemy enemy1 = new Enemy(); Enemy enemy2 = new Enemy(); Player player = new Player(); player.OnAttack += enemy0.JianShaoBlood; player.OnAttack += enemy1.JianShaoBlood; player.OnAttack += enemy2.JianShaoBlood; //DoAOE()执行对敌人减血10滴 player.DoAOE(10); } } } //调用过程记录: //1.玩家点击释放大招AOE攻击,后调用对应的玩家的DoAOE(减血数量)方法 //2.DoAOE()方法执行委托方法 //3.在此之前委托指针OnAttack()已经配置为敌人的减血方法 //4.这个例子中的回调就是敌人减血方法 //5.而委托方法本身起什么名字都可以
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。