起初我只是在做 if 语句来检查发送的对象的类型,但如果你有一堆不同类型的消息对象,那可能会很痛苦。然后我想,我做了一个被调用的事件,然后当某种类型正在侦听该事件并且当它被调用时它会检查它时,每个函数都会做某事。
if 语句的方式
//code for after message received - if you need the code for listening for the message i can give it but i don't see a need
Type msgType = msgObj.getType();
if(msgType == messageType1){
//do stuff
}
else if(msgType == messageType2){
//do more stuff
}
// and so on
如您所见,如果您有很多不同类型的消息,这可能会很糟糕
事件的方式
private delegate messageEvent(object message);
public event messageEvent onMessage;
//code after message received
onMessage(msgObj);
// sample function that will listen for the onMessage event
private void onMessage(object message){
if(message.getType() == typeForThisFunction){
//do somthing
}
}
正如您所看到的,这比 if 语句要容易一些,但要确保所有内容都在听,并且如果有很多不同类型的消息并同时检查它们,也会发现问题。
有没有更好的方法来做这件事更容易?