我一直在尝试将所有类编译成类库,这是一个非常好的功能。我的目标是让我的所有代码都不包含特定应用程序的代码。当我尝试添加引用父表单的类时,我会遇到问题,因为类库中没有父表单。如何在应用程序中创建父类之前创建一个尚未知的表单引用?
public class Form1 : Form
{
private Child child;
public Form1()
{
child = new Child(this);
}
}
public class Child
{
private Form1 parent;
public Child(Form1 parent)
{
this.parent = parent;
}
}
此代码在标准应用程序中工作,但是当我将Child类添加到类库时,“Form1”文本将无法编译,因为Form1未包含在类库中。有没有办法解决?谢谢你的帮助。
答案 0 :(得分:1)
由于Form1
源自Form
,为什么不将Form
作为Child
的构造函数的参数?
public class Child
{
private Form parent;
public Child(Form parent)
{
this.parent = parent;
}
}
这至少会破坏您的应用程序对类库的依赖性,但它仍然需要依赖于Form
的WinForms。这取决于您在代码中对parent
的意图,但这是否足够。