Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Использование объекта


Автор: Tiberian 28.2.2008, 12:52
---Возникла следующая проблема:

---Есть какой-то класс. Как создать его объект таким образом, чтобы к нему можно было обратиться откуда угодно? Создаю его в некоем методе какого-нибудь класса: "the_class obj = new the_class();" и никак не вкурю, как его потом изпользовать в других методах...

Автор: CYBERDREAM 28.2.2008, 13:03
сделай его глобальным
Код

public class MAN : System.Windows.Forms.Form
{
    the_class obj;
    
    void CheckItOut()
    {
        obj=new the_class();
        ....
    }
    void ShowForm()
    {
        obj.Show();
    }
}

Автор: QryStaL 28.2.2008, 13:03
Создать класс со статическим полем и хранить там ссылку на экзмепляр нужного тебе объекта.

Автор: Tiberian 28.2.2008, 13:16
---эмм... У меня есть класс globals, в котором я храню часто используемые переменные. Было бы логично добавить экземпляр этого класса именно туда:

Код

    public class globals
    {
        public static bool gotfile = false;
        public static string filename = null;
        static pairs.PairManger pm = new pairs.PairManger();        
    }//globals


---так вот, к его переменным обращаться откуда угодно можно легко и непринуждённо, попытка же обратиться к объекту pm приводит к ошибке: ['mainspace.globals.pm' is inaccessible due to its protection level]...

Автор: QryStaL 28.2.2008, 13:29
потому что у поля область видимости private. Измени его на public, а еще лучше - заверни в public свойство.

Автор: Tiberian 28.2.2008, 13:35
---Всем огромное спасибо. разобрался =) Если я добавлял к вызову конструктора public, получал ошибку: 

[Inconsistent accessibility: field type 'mainspace.pairs.PairManger' is less accessible than field 'mainspace.globals.pm'] 

---А косяк был в том, что один из классов, использовавшихся, в свою очередь, в том, объект которого я хотел сделать глобальным, не был объявлен как public =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)