c# bool.событие change
можно ли настроить прослушиватель событий так, чтобы при изменении bool вызывалась функция?
4 ответов
вы должны использовать свойства В C#, затем вы можете добавить любую обработку, которую хотите в сеттере (ведение журнала, запуск события,...)
private Boolean _boolValue
public Boolean BoolValue
{
get { return _boolValue; }
set
{
_boolValue = value;
// trigger event (you could even compare the new value to
// the old one and trigger it when the value really changed)
}
}
важный вопрос здесь: когда bool
что изменения?
С bool
- Это тип значения, который вы не можете передавать ссылки на него напрямую. Поэтому нет смысла говорить о чем-то вроде Changed
событие on - Если bool
изменений заменить другое bool
, не изменять.
картина меняется, если мы говорим о bool
поле или свойство ссылочного типа. В этом деле, общепринятой практикой стало разоблачить bool
как свойство (общественные поля нахмурились) и использовать INotifyPropertyChanged.PropertyChanged
событие чтобы поднять уведомление" изменено".
вручную, да, вы можете
public delegate void SomeBoolChangedEvent();
public event SomeBoolChangedEvent SomeBoolChanged;
private bool someBool;
public bool SomeBool
{
get
{
return someBool;
}
set
{
someBool = value;
if (SomeBoolChanged != null)
{
SomeBoolChanged();
}
}
}
Не уверен, если это то, что вы ищете.
посмотреть в реализации INotifyPropertyChanged в. MSDN получил большое, как по этому вопросу