Вызов функции из класса без новой инициализации - C # - PullRequest
2 голосов
/ 13 февраля 2012

У меня есть две формы и набор функций, созданных в классе.Мне нужно вызвать некоторые функции из класса Form1, а также использовать их в Form2 с некоторыми значениями переменных, хранящихся в классе из Form1, теперь я использую следующий код в форме Form2:

    private void button1_Click(object sender, EventArgs e)
    {
        if (checkBox1.CheckState == CheckState.Checked)
        {
            GetSetRequests reqClass = new GetSetRequests();
            MessageBox.Show(reqClass.RequestID.ToString());
        }
    }

RequestID - переменная, созданная в классе GetSetRequests.Сохраненное в нем значение Form1 Я должен использовать это значение в form2, но это значение становится нулевым из-за новой инициализации класса.Можно ли вызывать значения и функции из класса без новой инициализации?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

Переменные могут быть статическими (или ключевое слово в VB.NET является более описательным: shared).т.е. переменная является общей для всех экземпляров класса GetSetRequests.Однако статические / общие переменные в большинстве случаев являются плохой идеей.

Вместо этого вы должны передать объект GetSetRequests из Form1 в Form2 и разрешить обоим использовать один и тот же экземпляр.

Вам следует ознакомиться с основополагающими принципами ООП, поскольку вы задаете этот вопрос.Следующая статья предназначена для Java, но классы работают в C # таким же образом: http://docs.oracle.com/javase/tutorial/java/concepts/class.html

0 голосов
/ 13 февраля 2012

Вам необходимо передать объект из одной формы в другую, если вы хотите, чтобы обе формы совместно использовали один и тот же экземпляр объекта. Добавьте объект этого типа в конструктор Form2, и когда Form1 создаст его экземпляр, передайте ему свои GetSetRequests.

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

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