public void SimulateChangeCustomerLimitProperties(CCustomer objCustomer, enumActionSaveCancel enActionType) { // Создаем объект, хранящий информацию, которую нужно передать // объектам, получающим уведомление о событии ChangeCustomerLimitPropertieEventArgs e = new ChangeCustomerLimitPropertieEventArgs(objCustomer, enActionType); // Вызываем виртуальный метод, уведомляющий наш объект о возникновении события // Если нет типа, переопределяющего этот метод, наш объект уведомит все объекты, // подписавшиеся на уведомление о событии OnChangeCustomerLimitProperties(e); }
/// <summary> /// Инициирует событие и уведомляет о нем зарегистрированные объекты /// </summary> /// <param name="e"></param> protected virtual void OnChangeCustomerLimitProperties(ChangeCustomerLimitPropertieEventArgs e) { // Сохраняем поле делегата во временном поле для обеспечение безопасности потока EventHandler <ChangeCustomerLimitPropertieEventArgs> temp = m_ChangeCustomerLimitProperties; // Если есть зарегистрированные объектв, уведомляем их if (temp != null) { temp(this, e); } }