Как получить доступ к переменной вне обработчика событий, если она определена в обработчике событий в С#?

Ниже приведен некоторый мой код в приложении С# Windows Forms.

Он назначает случайное целое число для обработки. Как я могу получить доступ к новому значению дескриптора, чтобы его можно было использовать другими вызовами функций вне этого события кнопки, поскольку в С# нет глобальных переменных?

Я пробовал использовать метод, но он все равно не распознает дескриптор, когда я вызываю его вне события кнопки.

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

  private void button1_Click(object sender, EventArgs e)
    {
      Int handle = 0;
      random(ref handle);
    }

person john    schedule 26.11.2014    source источник
comment
Вы не можете, так зачем определять его в области действия обработчика событий, если вы хотите получить к нему доступ за пределами этой области. Если бы мы определили его как переменную уровня поля/класса, вы могли бы получить к нему доступ из другого места.   -  person Ben Robinson    schedule 26.11.2014
comment
Если речь идет о доступе к дескриптору в любом месте класса, объявите его как переменную уровня класса.   -  person Rohit    schedule 26.11.2014


Ответы (3)


Я предполагаю, что неправильно понял ваш вопрос, но на случай, если вы упустили очевидное. Как это выглядит?

public class MyForm : Form
{
    private int _handle;

    private void button1_Click(object sender, EventArgs e)
    {
        _handle = 0;
    }
}
person Derrick Moeller    schedule 26.11.2014

Вы можете определить переменную уровня класса и использовать ее для хранения этого значения.

public class MyClass
{
    private Int _handle = 0;

    private void incrementHandle()
    {
        _handle++;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        random(ref handle);
    }

    ...
}
person ZaberTooth    schedule 26.11.2014

Два пути.

  1. Определите член, используйте член.
  2. Создайте событие, отправьте эту переменную, используйте это событие, вызванное внутри этого события. Это равносильно тому, что вы вызываете функцию, которая нуждается в этой переменной напрямую.
person Wei    schedule 26.11.2014