# 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; }
}
}
```