Всем привет. Знаю, в последние пару дней я замучил сообщество своими вопросами, но...:D
Написал класс для работы с MySQL (своего рода, модель) из C#.
Само приложение строится так: форма приложения->фрейм. В фрейм уже загружаются страницы.
Но проблема в том, что в этих самых страницах класс для работы с MySQL нужно объявлять заново - а это создание нового подключения, лишний код и прочая нервотрепка.
Как сделать класс "глобальным" - например, чтобы его объявить единожды при инициализации приложения, а потом просто использовать везде (во всех страницах и других классах приложения), без объявления и создания новых подключений к СУБД?
Я знаю, что в C# нет понятия глобальной переменной, но все же я думаю, что люди уже что-то, да придумали:)
Во-первых, взгляните в сторону Dapper, вместо того, чтобы изобретать свои ORM для MySQL.
Во-вторых, в качестве "глобальных" переменных можно использовать статические свойства класса.
Я примерно так и поступил. Создал стат. класс, в конструктор пихаю старт соединения, в деструктор - закрытие (деструктор вызывается при закрытии программы). Класс инициализируется при старте приложения, в страницах, подгружаемых во фрейме, конструктор уже не вызывается. Или я что-то сделал не так?
Ну, мне отсюда не видно, что вы сделали не так. Вы спросили о глобальных переменных - я вам показал.
internal static class Globals
{
public const int IDOK = 1;
public const int IDCANCEL = 2;
}
а использовать можно так: var c = Globals.IDOK;
Не обязательно объявлять константы - можно обычные переменные и подставлять им значения перед использованием.