использование объекта в нескольких функциях - PullRequest
0 голосов
/ 02 июня 2010

Как я могу использовать объект из одной функции в другой?

main()
{
  private void button1_click { 

  MyClass object = new MyClass();
  object.blabla();

  }

  private void button2_click {

  // how can i use object from button1_click ??

  }
}

Ответы [ 3 ]

4 голосов
/ 02 июня 2010

Сохраняя объект вне области действия функции.

main()
{
  MyClass obj;

  private void button1_click 
  { 
    obj = new MyClass();
    obj.blabla();
  }

  private void button2_click 
  {
    //maybe check for null etc
    obj.dosomethingelse();
  }
}
1 голос
/ 02 июня 2010

в основном это более фундаментальный вопрос, который может быть решен, например, как

class program
{
    void Main(string[] args)
    {
      private MyClass FooInstance;
      private void button1_click()
      {
        // TODO be defensive: check if this.FooInstance is assigned before, to not override it!
        this.FooInstance = new MyClass();
        this.FooInstance.blablabla();
      }

      private void button2_click()
      {
        // TODO add some null check aka make sure, that button1_click() happened before and this.FooInstance is assigned
        this.FooInstance = ....;
      }
    }
}

Вы также можете выбрать режим отложенной загрузки (упомянутый Эндрю Андерсоном)

0 голосов
/ 02 июня 2010

make object как переменная-член класса, в котором определены функции.

main()
{
  private MyClass object;

  private void button1_click { 

  object = new MyClass();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...