Вы можете использовать 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')));
Из класса можно установить (скрытую) переменную в NULL. Нулевая ссылка является каноническим способом представить пустой список вызова, эффективно.
Снаружи класса Вы не можете сделать этого - события в основном выставляют, "подписываются" и "отказываются от подписки" и вот именно.
Стоит знать о том, что на самом деле делают подобные полю события - они создают переменную и событие одновременно. В классе Вы заканчиваете тем, что сослались на переменную. Снаружи, Вы ссылаетесь на событие.
См. мою статью о событиях и делегатах для получения дополнительной информации.
Добавьте метод к c1, который установит 'someEvent' на пустой указатель...
class c1
{
event EventHandler someEvent;
ResetSubscriptions() {someEvent = null;}
}
Можно достигнуть этого при помощи Делегата. Удалите или Делегат. Методы RemoveAll.
Установка в NULL события в работах класса. При расположении класса, необходимо всегда устанавливать событие в NULL, GC имеет проблемы с событиями и не может очистить склонный класс, если это имеет повисшие события.