c глобальная переменная для всего проекта

При запуске программы я делаю запрос к базе и сохраняю данные в элемент List. Как мне сохранить данные, Чтобы я мог получить доступ из любого места в проекте. Я думал сохранить в txt потом считывать каждый раз, но это не есть хорошо) Подскажите правильный вариант

1 ответ 1

Храните этот список в public static поле класса (какого — решите исходя из логики приложения).

Пример. Список будет храниться в статическом классе ListStore в свойстве PublicList . Заполнять будем методом этого же класса InitList . На запуске программы вызываем этот самый InitList , после чего наш список сформирован и мы можем обращаться к нему через ListStore.PublicList (что мы и делаем в методе GetFirstRecordFromList класса ListUser )

Всё ещё ищете ответ? Посмотрите другие вопросы с метками c# global-variables или задайте свой вопрос.

Связанные

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

Visual Studio 2010
в stdafx.h объявляю
extern int ig;

stdafx.h включен в каждый файл

в >в main.cpp написано ig = 14;

1>class.obj : error LNK2020: неразрешенная лексема (0A000005) «int ig» (?ig@@$$Q3HA)
1>temp.obj : error LNK2020: неразрешенная лексема (0A000009) «int ig» (?ig@@$$Q3HA)
1>temp.obj : error LNK2001: неразрешенный внешний символ «»int ig» (?ig@@$$Q3HA)»
1>class.obj : error LNK2001: неразрешенный внешний символ «»int ig» (?ig@@$$Q3HA)»
1>E:VisualStudio emp.exe : fatal error LNK1120: 3 неразрешенных внешних элементов

В файле myfile.h прописываете:

extern double pi;

В файле myfile.cpp

double pi = 3.14159265358979323846;

Во всех остальных файлах, где нужна переменная:

Обновл. 30 Июн 2019 |

Мы уже знаем, что переменные, объявленные внутри блока, называются локальными. Они имеют локальную область видимости (используются только внутри блока, в котором объявлены) и автоматическую продолжительность (создаются в точке определения и уничтожаются в конце блока).

Глобальными называются переменные, которые объявлены вне блока. Они имеют статическую продолжительность, т.е. создаются при запуске программы и уничтожаются при её завершении. Глобальные переменные имеют глобальную область видимости (или ещё «файловую область видимости»), то есть их можно использовать в любом месте файла, в котором они объявлены.

Определение глобальных переменных

Обычно глобальные переменные объявляют в верхней части кода, ниже директив #include, но выше любого другого кода. Например:

Подобно тому, как переменные во внутреннем блоке скрывают переменные с теми же именами во внешнем блоке, локальные переменные скрывают глобальные переменные с одинаковыми именами внутри блока, в котором они определены. Однако, с помощью оператора разрешения области видимости (::), компилятору можно сообщить, какую версию переменной вы хотите использовать: глобальную или локальную. Например:

Результат выполнения программы выше:

Global value: 3
Local value: 9

Использовать одинаковые имена для локальных и глобальных переменных — это прямой путь к проблемам и ошибкам, поэтому подобное делать не рекомендуется. Многие разработчики добавляют к глобальным переменным префикс g_ (“g” от англ. “global”). Таким образом можно убить сразу двух зайцев: определить глобальные переменные и избежать конфликтов имён с локальными переменными.

Ключевые слова static и extern

В дополнение к области видимости и продолжительности, переменные имеют ещё одно свойство: связь. Связь переменной определяет, относятся ли несколько упоминаний одного идентификатора к одной и той же переменной или нет.

Переменная без связей — эта переменная с локальной областью видимости, которая относится только к блоку, в котором она определена. Это обычные локальные переменные. Две переменные с одинаковыми именами, но определённые в разных функциях, не имеют никакой связи — каждая из них считается независимой боевой единицей.

Переменная, имеющая внутренние связи, называется внутренней переменной (или ещё «статической переменной»). Она может использоваться в любом месте файла, в котором определена, но не относится к чему-либо вне этого файла.

Переменная, имеющая внешние связи, называется внешней переменной. Она может использоваться как в файле, в котором определена, так и в других файлах.

Если вы хотите сделать глобальную переменную внутренней (которую можно использовать только внутри одного файла) — используйте ключевое слово static:

Оцените статью