Мне нужно вызывать метод, при изменении значения какой либо переменной. Я знаю самый простой способ - через 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
}
Если я правильно понял вопрос
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Базовый класс определен в библиотеке и изменить его я не могуМне нужно переопределить в наследнике метод базового класса, являющийся явной...
Уважаемые эксперты, помогите разобратьсяЕсть OpenBrowserDialog через него выбираем корневой каталог, в нем содержатся подкаталоги с тестовыми...
имеется проблема с иконкой приложения в трее а именно,иконка в трее появляется и исчезает при этом все это происходит моментальноВот код...