1
我正在创建一个可以接收来自各种不同来源的消息的系统。从接口实现自定义事件处理程序
使用interface
方法,我添加了一个自定义事件,它将消息传递回调用应用程序。
我用Vistual Studio的“脚手架”使用Ctrl-.
提供具体类的实现,但其增加了add
和remove
元素,但我真的不知道如何连接该位了。
接口类
public class MessageEventArgs : EventArgs
{
public Message { get; set; }
}
public interface MessageBroker
{
void Start();
event EventHandler<MessageEventArgs> OnMessageReceived;
}
实现类
public class MessageSourceA : MessageBroker
{
event EventHandler<MessageEventArgs> MessageBroker.OnMessageReceived
{
add
{
// What goes here
}
remove
{
// What goes here
}
}
void MessageBroker.Start()
{
}
}
主程序
static void Main(string[] args)
{
MessageBroker sourceA = new MessageSourceA();
sourceA.OnMessageReceived += sourceA_OnMessageReceived;
}
private static void sourceA_OnMessageReceived(object sender, MessageEventArgs e)
{
// Do stuff with message
}
谢谢...
你通常不需要这些,只要在“OnMessageReceived”之后加上一个分号(除去身体),除非你做了一些特殊的事情。然后你可以像调用其他方法一样调用它(检查它是否为空)。 – john
是否必须明确实施? –
请参阅[文档](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/add)以获取更多详细信息和示例[如何:实现接口事件](https:/ /docs.microsoft.com/en-us/dotnet/csharp/programming-guide/events/how-to-implement-interface-events) – Reniuz