C # - Вопрос о событиях - PullRequest
1 голос
/ 19 июня 2010

Может ли любой объект C # быть настроен так, чтобы к нему можно было привязать событие, которое будет запускаться при изменении его значения?Если да, то как это сделать?Например, давайте возьмем очень простой пример.Скажем, у меня есть переменная, объявленная следующим образом:

int i;

Можно ли создать событие, которое запускается в любое время, когда изменяется значение i?

Спасибо.

Ответы [ 4 ]

6 голосов
/ 19 июня 2010

Ну, вы не можете изменить поля , чтобы при изменении значения возникали события.

С другой стороны, вы можете легко сделать так, чтобы при изменении свойства происходило событие. Только автор класса, содержащего свойство, может сделать это, однако 1 - вы не можете прикрепить событие к произвольному существующему классу.


1 Небольшое исключение может представлять собой виртуальное свойство, которое может быть переопределено исключительно с целью вызова события. Это было бы довольно редко, хотя.

2 голосов
/ 19 июня 2010

Посмотрите на интерфейс INotifyPropertyChanged , который может быть реализован классом и вызываться - по крайней мере, некоторыми из его свойств, чтобы уведомлять слушателей об изменении некоторых значений.

0 голосов
/ 19 июня 2010

Посмотрите на шаблон PropertyChangedEvent .

0 голосов
/ 19 июня 2010

Другой вариант - использовать шаблон Observer .

Grz, Kris.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...