Как мне получить доступ к объекту, созданному в одном событии, в другом событии?

#c#

#c#

Вопрос:

Я создал объект в on event, теперь я хочу, чтобы другое событие получило к нему доступ. Как мне это сделать?

Я делаю это в Visual Studio 2010.

У меня есть форма, в которой есть три события кнопки. Первая кнопка создает объект. Я хочу, чтобы вторая кнопка использовала объект. Как мне это сделать?

    public void buttonCreate_Click(object sender, EventArgs e)
    {
        int size;
        int sizeI;
        string inValue;

        inValue = textBoxSize.Text;
        size = int.Parse(inValue);
        inValue = comboBoxSizeI.Text;
        sizeI = int.Parse(inValue);

        Histrograph one = new Histrograph(size, sizeI);
    }

    public void buttonAddValue_Click(object sender, EventArgs e)
    {
        int dataV = 0;
        string inValue;
        inValue = textBoxDataV.Text;
        dataV = int.Parse(inValue);
        one.AddData(dataV); //using the object
    }
  

Комментарии:

1. Не могли бы вы быть немного конкретнее?

2. 1 за улучшение.

Ответ №1:

Если я правильно проанализирую ваш вопрос, вы хотите использовать one переменную, созданную в buttonCreate_Click в buttonAddValue_Click .

Для достижения этого вам нужно создать one переменную класса, как в:

  class MyForm : Form
 {
    Histogram one;

public void buttonCreate_Click(object sender, EventArgs e)
{
    int size;
    int sizeI;
    string inValue;

    inValue = textBoxSize.Text;
    size = int.Parse(inValue);
    inValue = comboBoxSizeI.Text;
    sizeI = int.Parse(inValue);

    one = new Histrograph(size, sizeI);  // NOTE THE CHANGE FROM YOUR CODE
}

public void buttonAddValue_Click(object sender, EventArgs e)
{
    int dataV = 0;
    string inValue;
    inValue = textBoxDataV.Text;
    dataV = int.Parse(inValue);
    one.AddData(dataV); //using the object
}
  

Ответ №2:

Вы можете выполнить это, используя закрытую переменную в отличие от локальной переменной

 //Declare a private variable
private object _myObject

public void Event1Handler(object sender, EventArgs e)
{
     //Create the object
     _myObject = CreateTheObject();
}


public void Event2Handler(object sender, EventArgs e)
{
    //Use the object
    UseTheObject(_myObject);
}
  

Комментарии:

1. Куда мне поместить строку «частный объект _myObject»?

2. внутри тела объявления класса