#c# #windows-runtime #uwp
#c# #windows-среда выполнения #uwp
Вопрос:
Я использую static bool hasBeenLoaded = false;
на Странице, и бывают случаи, когда я очищаю стек навигации, а затем загружаю эту страницу, но все равно элемент hasBeenLoaded сохранит свое старое значение.
Разве это не должно быть очищено, поскольку я удаляю весь BackStack перед переходом?
Комментарии:
1. Просто не делайте это статичным.
2. Статические переменные … статичны, они не принадлежат ни одному экземпляру, поэтому они не будут неинициализированы до завершения программы. Если вы хотите, чтобы она была уничтожена с экземпляром класса, тогда просто не делайте ее статичной.
3. Хорошо, спасибо, я думал, что они будут доступны до тех пор, пока страница не будет уничтожена.
Ответ №1:
Если вы хотите очистить значение (ни true, ни false), то объявите переменную как nullable. например. static bool? hasBeenLoaded = value
. В случае сброса просто установите ClassName.hasBeenLoaded = null;