Я хотел бы вызвать обработчик событий только один раз, а затем отсоединить его. Я пытался написать:Отсоединение обработчика при первом вызове
EventHandler handler = (s, e) =>
{
// Do something
//
// blabla
// Detach the handler
SizeChanged -= handler;
};
SizeChanged += handler;
Однако на линии SizeChanged -= handler
я получаю эту ошибку
Use of unassigned local variable 'handler'
ли вы idead о том, как я должен поступить? Я думал об использовании логического флага, но я сделаю это только в том случае, если не найду способ отсоединить обработчик.
Если вы это сделаете, у вас будет исключение null ref в вашем обратном вызове ... –
Нет, попробуйте. Обработчик захватывается в закрытии. – aKzenT
Эй, не проголосуйте меня, прежде чем вы даже попробовали! прочитайте, как работают затворы ... – aKzenT