2012-02-13 36 views
2

我有两种形式和一组在类中创建的函数。我要打电话从类中的一些功能从Form1,并用它们在Form2与存储在类从Form1一些变量值,现在我使用Form 2上下面的代码:从类中调用函数而不进行新初始化 - 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 2012-02-13 19:19:02

回答

0

如果您希望这两个表单共享同一个对象实例,则需要将对象从其中一个表单传递给另一个表单。将该类型的对象添加到Form2的构造函数中,当Form1创建它的一个实例时,将GetSetRequests传递给它。如其他人所提到的,你也可以赋予类的静态属性,但这意味着它不可能在其他地方使用。

0

变量可以是静态的(或者VB.NET中的关键字更具描述性:shared)。即该变量在GetSetRequests类的所有实例之间共享。在大多数情况下,静态/共享变量是一个坏主意。

您应该将GetSetRequests对象从Form1改为Form2,并让两者都使用相同的实例。

你应该阅读fundemental OOP原则,因为你问这个问题。以下文章适用于Java,但类在C#中的工作方式相同:http://docs.oracle.com/javase/tutorial/java/concepts/class.html