| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > глобальные переменные C# |
| Автор: Vaulter 9.7.2004, 12:09 |
| ээээ? есть MyClass mc=new MyClass(); необходимо чтобы mc был виден и из Form1 и Form2 и т.д. как? |
| Автор: Kurt 9.7.2004, 12:49 | ||||
| Нууу.. Тут, все зависит от задачи. Варианты решения: 1) Объявить эту переменную static.
Но тогда, ессно, хранить можно тока одно значение на всех. 2) Объявить переменную public.
Но в конструкторе каждой формы придется передавать указатель не экземпляр класса (обычно, этол\ форма), где содержится это поле. Короче, в зависимости от условий. Опиши подробнее задачу. |
| Автор: Vaulter 9.7.2004, 13:21 |
| просто есть класс настроек программы (загрузка, сохранение и доступ) он создается в конструкторе главной формы. соответсвенно, он должен быть тем же (чтобы по сто раз не читались, а читались только в начале - конструктор должен быть один)... в другой форме... |
| Автор: Kurt 9.7.2004, 15:04 |
| Тогда я бы передавал ссылку на экземпляр этого объекта через конструктор той формы, где мне надо использовать такой объект. А если таких полей несколько, то лучше передавать ссылку на главную форму. А уж с помощью нее получать доступ к нужным полям. Короче, если что, домой вернусь - напишу пример. (могу, конечно, и так - но я люблю гарантированно работающие примеры Хотя тут, вроде, все просто. З.Ы. А, может, кто-нибудь придумает решение покрасивее.. |
| Автор: Tomcat 9.7.2004, 19:05 | ||
| Создаешь дополнительно класс, например, AppSettings. У него делаешь статический атрибут/свойство класса MyClass, например, mc. В конструкторе главной формы создаешь объект класса MyClass, присваиваешь его к AppSettings.mc. Вот и все! Любая форма будет видеть видеть класс AppSetting и сможет добраться до его mc. Можно еще поизвращаться и обойтись без AppSettings, а создать статический атрибут в самом класcе MyClass. Но это сути не меняет...
Примерно так. P.S. Это же просто. Или я чего не понимаю |