C# delegate event 例子
2013-03-01 00:32
274 查看
using UnityEngine; using System.Collections; using DelegateEvent; public class test : MonoBehaviour { void OnGUI() { if(GUI.Button(new Rect(10, 10, 10, 10), "")) { Cat cat = new Cat(); Mouse mouse1 = new Mouse("mouse1", cat); //在对象初始化的时候,已经注册了对猫叫的响应事件 Mouse mouse2 = new Mouse("mouse2", cat); Master master = new Master(cat); cat.Cry(); } } } namespace DelegateEvent { public delegate void SubEventHandler(); public abstract class Subject { public event SubEventHandler SubEvent; protected void FireAway() //开火, 抽象类可以有具体方法。 { if (this.SubEvent != null) this.SubEvent(); } } public class Cat : Subject { public void Cry() { NGUIDebug.Log("cat cryed."); this.FireAway(); } } public abstract class Observer //定义一个观察者的抽象类,这样的类有一点就是观察谁,这个谁肯定是一个类,这里指猫 { public Observer(Subject sub) //抽象类也可以定义构造函数 { sub.SubEvent += new SubEventHandler(Respose); //注册猫叫事件(表达有点含糊),当此事件触发的时候,老鼠会做出回应 } public abstract void Respose(); } //定义一个观察者,老鼠 public class Mouse : Observer { private string name; public Mouse(string name, Subject sub) //定义构造函数,并初始化父类 : base(sub) { this.name = name; } public override void Respose() { NGUIDebug.Log(name + " attempt to escape!"); // Console.WriteLine(name + " attempt to escape!"); } } //定义一个观察者,主人 public class Master : Observer { public Master(Subject sub) : base(sub) { } public override void Respose() { NGUIDebug.Log("host waken"); } } }
相关文章推荐
- C#的事件(Event)和代理/委托(Delegate)例子
- 一个C#中使用 event 和 delegate的小例子。
- C#中的delegate和event
- 关于C#的delegate(委托)和event(事件)的使用
- 观察者模式(observer)之委托(delegate) c#简单例子
- C#:代表(delegate)和事件(event) (转)
- C#编程利器之四:委托与事件(Delegate and event) (下)
- c#中的delegate(委托)和event(事件)
- C# 委托delegate 例子
- c#中的delegate(委托)和event(事件)
- c# 关键字delegate、event(委托与事件)[MSDN原文摘录][1]
- C#编程利器之四:委托与事件(Delegate and event) (上)
- 关于C#.Net中事件(event)、委托(delegate)和方法的一点理解
- C#中关键字event 对delegate 对象的影响
- C#中的委托(Delegate)和事件(Event)
- Unity Event&Delegate 例子
- C#:委托(delegate)和事件 (event)
- [C#] Delegate, Multicase delegate, Event
- c#中的delegate(委托)和event(事件)
- 终于会用c#中的delegate(委托)和event(事件)了