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