0

在我看来,我已经在这个网站上彻底寻找了答案,但不幸的是我没有找到任何答案,或者我只是看着它。

我有 2 个表单和 1 个控制器类和 1 个模型类或数据类。此外,ControllerClass还有一个模型类的数组。

Form1我对控制器进行了这样的引用:

ControllerClass control = new ControllerClass();

Form2我想从ControllerClass我提到的参考Form1

到目前为止,我一直在做类似的事情:

ControllerClass control = new ControllerClass();

Form2但这只是制作了一个新副本,对ControllerClass我没有多大帮助。

那么我怎样才能使用ControllerClass我在其中实例化的那个Form1Form2

4

2 回答 2

0

如果你只需要一个类中的一个对象,你可以使用一个单例。然后ofc,您将始终拥有相同的对象。

有几种方法可以将控件实现为单例

这里有一些例子: http ://csharpindepth.com/articles/general/singleton.aspx

对于 C#,我更喜欢嵌套版本。

于 2013-10-12T10:56:53.947 回答
-1

如果您不想通过构造函数将对象传递给其他窗体(在 C# 中的两个窗口窗体之间进行通信),正如其他人在这里所建议的那样,您可以在 Form1 中使用静态对象。

例如,您可以声明

public static ControllerClass control = new ControllerClass();

然后像这样访问对象:

ControllerClass temp = Form1.control;

您还可以创建第二个静态类,该类将具有 ControllerClass 对象(该类应该在同一个命名空间中,而不是在 Form1 类中),如下所示:

public static class ControllerStaticClass
{
    public static ControllerClass control = new ControllerClass();
}

然后您可以访问 ControllerClass 对象,例如:

ControllerClass temp = ControllerStaticClass.control;
于 2013-10-12T09:55:00.420 回答