Нужно отслеживать состояние переменной. Пытался сделать такой код:
private static Dictionary<bool, bool> conditions = new Dictionary<bool, bool>();
public static bool Is(bool Is) {
bool IsOld;
if (!conditions.TryGetValue(Is, out IsOld)) {
IsOld = false;
}
conditions[Is] = Is;
if (Is && !IsOld) {
return true;
}
return false;
}
Нужно чтобы этот метод работал единожды когда изменяется значение переменной.
Как такое сделать?
То есть была переменная true
метод сказал true
и после уже говорил false
.
Стала переменная false
метод глянул, сказал true
и снова стал false
.
Помогите разобраться, что я не так делаю?
Как это правильно сделать, для любой переменной, которую закидываем в Is(variable)
.
Что никто не знает как это сделать?
Вообщем, все банально и просто:
public static bool Is(bool Is, int key = 0) {
if (conditions.ContainsKey(key)) {
if (conditions[key] != Is) {
conditions[key] = Is;
return true;
}
} else {
conditions[key] = Is;
return true;
}
return false;
}
Остается лишь делать каждому новому вызову, новый ключ:
Is(var1);
Is(var2, 1);
........
Для прешедствующих версий нета, юзаем смело [CallerLineNumber] int Line = 0
или еще есть фишка nameof(var)
, сам нэймуф можем не использовать в прототипе, а прямо внутрях метода юзать, для вызова, даже без определения самого прототипа, прямо в теле метода определяем стрингу и вуаля:
string IsName = nameof(Is);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Возникла необходимость создать ограничение для ввода данных в textBox
Проблема в чем: мне нужно передать команде параметр в виде FrameFrame определён в коде XAML