C#委托的用法

2019-08-16  本文已影响0人  浪荡少年

首先声明一个委托的类,例如: public delegate void ChatMessage(ModelChatResponse chat); 我这里的ModelChatResponse 是自定义的一个实体类

然后在一个类(最好是个单例类,不销毁的那种)中声明一个委托变量,例如: public ChatMessage SaveChatMessage;

然后在需要广播的类中声明一个函数,例如: public void SetChatMessage(ModelChatResponse model){  };

再在这个需要广播的类中让单例类绑定这个函数(最好在Start里面绑定),例如: GameData.Instance.SaveChatMessage += SetChatMessage;

还需要在OnDestroy生命周期里解除绑定,例如: GameData.Instance.SaveChatMessage -= SetChatMessage;

接下来就是如何广播这个委托了,特别简单,

只需要判断一下单例类里面的这个委托变量为不为空就可以了,例如:

if (SaveChatMessage != null)

{

    ModelChatResponse model = JsonMapper.ToObject<ModelChatResponse>(res.Data);

    SaveChatMessage(model);

}

以上的操作就是当你对单例类的委托变量进行操作时,这个委托变量就会广播所有绑定这个变量的函数,然后这些函数都会执行广播后的处理了

上一篇 下一篇

猜你喜欢

热点阅读