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