Как сбросить статическую переменную на странице в UWP?

#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;