Задать вопрос
@iRumba

C# Как вызвать событие после того как функция вернула значение?

Есть класс
public Класс1
{
public Объект МетодСоздающийОбъект(){
****
****
Объект объект1=new Объект;
Событие1(объект1);
return объект1;
}
}

в основном теле программы вызывается МетодСоздающийОбъект

Класс1 Класс=new Класс1();
Объект Объект1 = Класс.МетодСоздающийОбъект();
Объект1.свойство1 = 1;

и есть обработчик события, который подписан на событие Событие1

ОбработчикСобытия1(Объект Объект1){
console.WriteLine(Объект1.Свойство1);
}

Соответственно выводится "0", потому что сначала срабатывает событие1, а только потом возвращается объект и его свойству присваивается значение "1".

Как это красиво обойти?
  • Вопрос задан
  • 288 просмотров
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
@velnick
По моему тут проблема в логике. Какое событие вас интересует на самом деле?
Если вас интересует создание объекта, то у вас правильная логика - все происходит так как должно.
Если интересует изменение значений свойств, то нужно подписываться на событие изменения свойств.
Если интересует инициализация определенного набора свойств, то сделайте метод Initialize, в котором задавайте значения, а потом генерируйте события.
Если интересует создание объекта с инициализированными свойствами, то надо делать конструктор с параметрами и инициализировать свойства объекта внутри конструктора.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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