C# 从类调用函数而不进行新的初始化-C
我在一个类中创建了两种形式和一组函数。我必须从Form1的类中调用一些函数,并在Form2中使用它们,其中一些变量值存储在Form1的类中,现在我在Form2上使用以下代码:C# 从类调用函数而不进行新的初始化-C,c#,winforms,class,C#,Winforms,Class,我在一个类中创建了两种形式和一组函数。我必须从Form1的类中调用一些函数,并在Form2中使用它们,其中一些变量值存储在Form1的类中,现在我在Form2上使用以下代码: private void button1_Click(object sender, EventArgs e) { if (checkBox1.CheckState == CheckState.Checked) { GetSetRequests reqC
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传递给它
正如其他人所提到的,您也可以为类提供静态属性,但这意味着它永远不能在其他任何地方使用。如果您希望两个表单共享同一个对象实例,则需要将对象从一个表单传递到另一个表单。将该类型的对象添加到Form2的构造函数中,当Form1创建它的实例时,将GetSetRequests传递给它
正如其他人所提到的,您也可以为类提供静态属性,但这意味着它永远不能在其他任何地方使用。变量可以是静态的,或者VB.NET中的关键字更具描述性:shared。i、 e该变量在GetSetRequests类的所有实例之间共享。然而,在大多数情况下,静态/共享变量是个坏主意 相反,您应该将GetSetRequests对象从Form1传递到Form2,并让两者使用相同的实例
既然你问了这个问题,你应该仔细阅读OOP的基本原理。下面的文章是针对Java的,但是类在C中的工作方式与之相同:变量可以是静态的,或者VB.NET中的关键字更具描述性:shared。i、 e该变量在GetSetRequests类的所有实例之间共享。然而,在大多数情况下,静态/共享变量是个坏主意 相反,您应该将GetSetRequests对象从Form1传递到Form2,并让两者使用相同的实例 既然你问了这个问题,你应该仔细阅读OOP的基本原理。下面的文章是针对Java的,但类在C中的工作方式相同: