Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> глобальные переменные C# 
:(
    Опции темы
Vaulter
Дата 9.7.2004, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



ээээ? есть
MyClass mc=new MyClass();

необходимо чтобы mc был виден и из Form1 и Form2 и т.д.

как?


--------------------
PM MAIL WWW ICQ   Вверх
Kurt
Дата 9.7.2004, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Нууу..
Тут, все зависит от задачи.
Варианты решения:
1) Объявить эту переменную static.
Код

static  MyClass mc;

Но тогда, ессно, хранить можно тока одно значение на всех.
2) Объявить переменную public.
Код

public MyClass mc;

Но в конструкторе каждой формы придется передавать указатель не экземпляр класса (обычно, этол\ форма), где содержится это поле.
Короче, в зависимости от условий.
Опиши подробнее задачу.



--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Vaulter
Дата 9.7.2004, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



просто есть класс настроек программы (загрузка, сохранение и доступ)
он создается в конструкторе главной формы.
соответсвенно, он должен быть тем же (чтобы по сто раз не читались, а читались только в начале - конструктор должен быть один)... в другой форме...


--------------------
PM MAIL WWW ICQ   Вверх
Kurt
Дата 9.7.2004, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Тогда я бы передавал ссылку на экземпляр этого объекта через конструктор той формы, где мне надо использовать такой объект.
А если таких полей несколько, то лучше передавать ссылку на главную форму.
А уж с помощью нее получать доступ к нужным полям.
Короче, если что, домой вернусь - напишу пример. (могу, конечно, и так - но я люблю гарантированно работающие примеры smile.gif )
Хотя тут, вроде, все просто.

З.Ы. А, может, кто-нибудь придумает решение покрасивее.. withstupid.gif


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Tomcat
Дата 9.7.2004, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 4.4.2003
Где: Гродно, Беларусь

Репутация: 2
Всего: 2



Создаешь дополнительно класс, например, AppSettings. У него делаешь статический атрибут/свойство класса MyClass, например, mc. В конструкторе главной формы создаешь объект класса MyClass, присваиваешь его к AppSettings.mc. Вот и все! Любая форма будет видеть видеть класс AppSetting и сможет добраться до его mc.
Можно еще поизвращаться и обойтись без AppSettings, а создать статический атрибут в самом класcе MyClass. Но это сути не меняет...

Код

public class MyClass
{
      ....................... //описание класса MyClass
}

public class AppSettings
{
    public static MyClass mc;
}

public class MainForm
{
   ...
   public MainForm(параметры)
   {
        ...
        AppSettings.mc = new MyClass(параметры);
        ...
   }
   ...
}

public class OtherForm
{
    ...
    public  someMethod()
    {
          юзаю AppSettings.mc, сколь хочу...
    }
    ...
}


Примерно так.

P.S. Это же просто. Или я чего не понимаю thumbs-up.gif

Это сообщение отредактировал(а) Tomcat - 9.7.2004, 19:15
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.