Нужно отслеживать состояние переменной. Пытался сделать такой код:
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);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости