Ответы с форумов MSDN

C# - Почему не рекомендуется использовать статические переменные?

Date: 11.06.2017 10:38:53

Использование статической переменной не рекомендуется.

Так правильно: internal static bool bLoadPage = true;

Если нет то почему и как лучше?

Плохо то, что данная реализация сделана в предположении существования единственного экземпляра страницы, что делает приложение немасштабируемым. Допустим, страница отображает некий документ. Если вам впоследствии захочется добавить возможность открывать несколько документов одновременно, большую часть кода придется переписывать.

Нужно не пихать статические переменные в страницу напрямую, а пользоваться понятием "контекста". Создаем класс  AppContext, пихаем в него все переменные, относящиеся к состоянию приложения, и добавляем статическое свойство Current. Соответственно, из кода обращаемся как AppContext.Current.bLoadPage. Когда захочется сделать несколько одновременных страниц, делаем в AppContext коллекцию контекстов, и меняем свойство Current, чтобы он возвращал активный в данный момент контекст. Основную часть кода переписывать не придется.


Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub