Я пытаюсь скопировать функции, предоставляемые существующим событием класса .NET XNA: NetworkSession.GamerJoined.Как поднять событие при назначении нового обработчика?
Когда событие назначается сразу можно поднять, например .:
myNetworkSession.GamerJoined += GamerJoinedEventHandler;
void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e)
{
// If you put a beakpoint on the assignment line above and another here
// this handler is called during the assignment.
}
Как я могу добиться этого, если я пишу свой собственный NetworkSession
класс с GamerJoined
события?
Если у вас есть использование побочного эффекта в методе обработчика событий, просто позвоните ему напрямую, вам не понадобится XNA, чтобы сделать это за вас. Скорее всего, вам придется реорганизовать его и перенести какой-то код в частный метод, так как сложно создать действительный экземпляр GamerJoinedEventArgs. –
@HansPassant Я пишу реализацию класса, поэтому код пользователя, написанный для XNA, будет работать только с моей. – markmnl
Тогда это запах кода. Тот факт, что * некоторый * код клиента заинтересован в том, чтобы знать, когда геймер присоединился к сети, вы не знаете, как выглядит этот код, но не означает, что геймер действительно присоединился. –