从类调用函数而不进行新的初始化-C#
本文关键字:初始化 -C# 调用 函数 | 更新日期: 2023-09-27 18:24:15
我在一个类中创建了两种形式和一组函数。我必须从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中使用该值,但由于类的新初始化,该值变为null。是否可以在不进行新初始化的情况下从类中调用值和函数?
如果希望两个窗体共享同一个对象实例,则需要将对象从其中一个窗体传递到另一个窗体。将该类型的对象添加到Form2的构造函数中,当Form1创建它的实例时,将您的GetSetRequests传递给它。
正如其他人所提到的,您也可以为类提供静态属性,但这意味着它永远不能在其他地方使用。
变量可以是静态的(或者VB.NET中的关键字更具描述性:shared
)。即该变量在CCD_ 7类的所有实例之间共享。无论如何,在大多数情况下,静态/共享变量是个坏主意。
您应该将GetSetRequests
对象从Form1
传递到Form2
,并让两者使用相同的实例。
既然你提出了这个问题,你就应该仔细阅读OOP的基本原则。以下文章适用于Java,但类在C#中的工作方式相同:http://docs.oracle.com/javase/tutorial/java/concepts/class.html