처음에는 송신 된 객체의 유형을 확인하기 위해 if 문을 수행하는 중이었지만 여러 유형의 메시지 객체가있는 경우 실제로 고통이 될 수 있습니다. 그런 다음 생각하고 나는 특정 유형이 그 사건을 듣고 그것이 그것을 검사 할 때 무언가를하는 각각의 함수라고 부르는 사건을 만들었다.메시지가 tcp 소켓을 통해 recived 될 때 유형 검사를 수행하는 더 좋은 방법이 있습니까?
와 방법은 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
}
}
로와 방법의 differnt 한 종류 많이있는 경우이 빨 수 있습니다 볼 수 있습니다 당신은 이것이 if 문장보다 조금 더 쉽지만 여전히 모든 것이 듣고 있는지 확인하는 고통이 될 수 있고 또 다른 종류의 mes가 있다면 문제를 볼 수있다. 현자들과 그들 모두를 동시에 체크하는 것.
이 작업을 수행하는 더 좋은 방법은 많이 있습니다.
첫 번째 설명을 좀 더 자세히 설명해 주실 수 있습니까? 나는 사전을 사용 해본 적이 없다. 사전에 각 유형에 대해 호출해야하는 프로세스를 추가하고 유형을 키로 사용하는 것처럼 보입니다. 그 후에 당신은 무엇을하나요? – Shredder2500
@ Shredder2500 : 메시지를 받고 그것에'.GetType()'을 수행하십시오; 그러한 키가 존재하는지 확인하기 위해 결과를 사용하십시오; 그렇다면 해당 값 (함수)을 가져 와서 메시지를 매개 변수로 전달하십시오. 사전을 사용하는 방법에 대한 자세한 내용은 MSDN을 참조하십시오. – Jon