Мне нужно вызывать метод, при изменении значения какой либо переменной. Я знаю самый простой способ - через property.
private int health;
public int Health
{
get => health;
set
{
health = value;
//И тут вызывать метод.
}
}
Но в таком случае, нужно строго использовать объявленный property Health. Это не очень удобно, так как можно очень легко ошибится и использовать health вместо Health. Поэтому постоянно приходиться держать в голове, что нужно использовать Health.
Я считаю, что должен быть другой способ, попроще, который я не знаю, но надеюсь, что его знаете Вы!
private int _health;
public int Health {
set {
if (value != _health) {
_health = value;
// call method
}
}
get {
return _health;
}
}
Другой вариант с событиями
class Person
{
internal delegate void HealthEvent();
public event HealthEvent OnHealthChanged;
private int _health;
public int Health
{
set
{
if (value != _health)
{
_health = value;
if (OnHealthChanged != null) OnHealthChanged();
}
}
get
{
return _health;
}
}
}
после создаете экземпляр класса
Person p = new Person();
и подписываете его на ваш метод, это может быть один или несколько методов
p.OnHealthChanged += InformIfHealthChanged;
if(value)
{
//do something
}
Если я правильно понял вопрос
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости