2012-02-13 4 views
2

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

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, но это значение становится нулевым из-за новой инициализации класса. Можно ли вызывать значения и функции из класса без новой инициализации?

+1

Статические методы? – cadrell0

ответ

0

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

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

0

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

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

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

Смежные вопросы