喂!我制作了一个完全由表格控制的小锅炉系统。但是,表单组件在类,锅炉,散热器等中调用函数。
我有一个主要类来实例化所有类,但我正在努力弄清楚如何将表单对象传递给这些类,以便他们可以访问表单的组件。
我想我应该在每个类中使用mutator方法来存储表单对象?我怎么做这个在语法上正确的呢?
谢谢! ; O)
答案 0 :(得分:1)
只需将表单传递给每个class
即可。将它存储在私有变量中,以便类稍后可以使用它。它默认通过引用传递。
class Boiler {
private Form parentForm;
public Boiler(Form f) {
parentForm = f;
}
}
答案 1 :(得分:1)
将引用类型传递给方法时,C#(默认情况下)会将引用的副本传递给方法。这意味着如果将您所引用的引用传递给您的类,则您将为该方法提供该引用的副本,并且由于两个副本引用同一对象,因此调用站点和方法都可以访问同一实例。
例如:
class Example
{
static void Main()
{
string s = "hello, world";
// Here we are passing a copy of the reference
// stored in "s" to "Print"
Print(s);
}
static void Print(string str)
{
// By default, "str" will be assigned the copy of the
// reference passed to this method.
Console.WriteLine(s);
}
}
我会小心地构建一个应用程序,在该应用程序中,您的域对象(在您的情况下,Boiler
,Radiator
等)知道消耗它们的UI层。如果您发现需要将Form
传递给其中一个域模型,那么您可能做错了。如果您向我们展示您想要实现的一个小例子,我们可以帮助您提出一个更易于维护的解决方案。