从类调用函数而不进行新的初始化-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。是否可以在不进行新初始化的情况下从类中调用值和函数?

从类调用函数而不进行新的初始化-C#

如果希望两个窗体共享同一个对象实例,则需要将对象从其中一个窗体传递到另一个窗体。将该类型的对象添加到Form2的构造函数中,当Form1创建它的实例时,将您的GetSetRequests传递给它。

正如其他人所提到的,您也可以为类提供静态属性,但这意味着它永远不能在其他地方使用。

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

您应该将GetSetRequests对象从Form1传递到Form2,并让两者使用相同的实例。

既然你提出了这个问题,你就应该仔细阅读OOP的基本原则。以下文章适用于Java,但类在C#中的工作方式相同:http://docs.oracle.com/javase/tutorial/java/concepts/class.html