# EventBus **Repository Path**: zjwno1/EventBusSharp ## Basic Information - **Project Name**: EventBus - **Description**: 一个超简单的事件总线解耦实现方式,代码简洁明了。 几十行代码完成解耦 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2025-04-30 - **Last Updated**: 2025-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 一个超简单的事件总线解耦实现方式,代码简洁明了。 ## 几十行代码完成解耦 ## 参考代码 ``` C# using EventBusSharp; using System.Net.Http.Headers; namespace Test { internal class Program { static void Main(string[] args) { Program program = new Program(); program.Test1(); program.Test2(); Console.ReadKey(); } /// /// 发布与订阅字符串 /// public void Test1() { //订阅,消息名:TestEvent自己定义,发布跟订阅一致就行 EventBus.Instance.Subscribe(this, "TestEvent", (data) => { Console.WriteLine(data); }); //发布消息 EventBus.Instance.Publish("TestEvent", "Hello World1"); //发布消息 EventBus.Instance.Publish("TestEvent", "Hello World2"); //发布消息 EventBus.Instance.Publish("TestEvent", "Hello World3"); //取消订阅,订阅和取消对应必须一致 EventBus.Instance.UnSubscribe(this, "TestEvent"); EventBus.Instance.Publish("TestEvent", "Hello World4"); EventBus.Instance.Publish("TestEvent", "Hello World5"); } /// /// 发布与订阅对象 /// public void Test2() { EventBus.Instance.Subscribe(this, (ev) => { Console.WriteLine(ev.Data); }); //发布消息 EventBus.Instance.Publish(new MyEvent { Data = "HelloWorld1" }); //发布消息 EventBus.Instance.Publish(new MyEvent { Data = "HelloWorld2" }); //发布消息 EventBus.Instance.Publish(new MyEvent { Data = "HelloWorld3" }); //取消订阅,订阅和取消对应必须一致 EventBus.Instance.UnSubscribe(this); EventBus.Instance.Publish(new MyEvent { Data = "HelloWorld4" }); EventBus.Instance.Publish(new MyEvent { Data = "HelloWorld5" }); } } public class MyEvent : IEvent { public string Data { get; set; } } } ```