Как очистить подписки на события в C #?

Вы можете использовать momentjs и передавать массив с возможными форматами. Лучше всего было бы исправить интерфейс. Например, есть время для ввода.

const dates = ["7am", "17:30", "04h50", "3.30am", "3pm30","03pm30","08:30 am", "5h00", "2h30", "5pm", "8:15"];

const parsed = dates.map(d => moment(d, ['ha', 'h:mm', 'h[h]mm', 'h.mma', 'hamm']))
                    .forEach(e => console.log(e.format('h:mm a')));

137
задан Jason Plank 1 November 2011 в 14:43
поделиться

4 ответа

Из класса можно установить (скрытую) переменную в NULL. Нулевая ссылка является каноническим способом представить пустой список вызова, эффективно.

Снаружи класса Вы не можете сделать этого - события в основном выставляют, "подписываются" и "отказываются от подписки" и вот именно.

Стоит знать о том, что на самом деле делают подобные полю события - они создают переменную и событие одновременно. В классе Вы заканчиваете тем, что сослались на переменную. Снаружи, Вы ссылаетесь на событие.

См. мою статью о событиях и делегатах для получения дополнительной информации.

176
ответ дан 23 November 2019 в 23:34
поделиться

Добавьте метод к c1, который установит 'someEvent' на пустой указатель...

class c1
{
    event EventHandler someEvent;
    ResetSubscriptions() {someEvent = null;}
}
32
ответ дан 23 November 2019 в 23:34
поделиться

Можно достигнуть этого при помощи Делегата. Удалите или Делегат. Методы RemoveAll.

5
ответ дан 23 November 2019 в 23:34
поделиться

Установка в NULL события в работах класса. При расположении класса, необходимо всегда устанавливать событие в NULL, GC имеет проблемы с событиями и не может очистить склонный класс, если это имеет повисшие события.

6
ответ дан 23 November 2019 в 23:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: