【发布时间】:2013-03-26 12:28:51
【问题描述】:
我一直在尝试将我所有的类编译成一个类库,这是一个非常好的特性。我的目标是在其中包含不包含特定应用程序代码的所有代码。当我尝试添加一个引用父表单的类时,我遇到了问题,因为类库中没有父表单。如何创建对在应用程序中创建父类之前未知的表单的引用?
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 不包含在类库中。有没有办法解决?感谢您的帮助。
【问题讨论】:
-
如果
Child被放置在一个库中,那么它不应该对 Form1 有任何依赖 -
正如我对另一个答案的评论。然后在孩子中制作一个事件并从父母那里订阅它而不是从孩子那里调用父母的方法是最佳做法吗?谢谢。
-
使用事件打破对视图的依赖。如果这会导致困难,请使用接口。
标签: c# forms reference class-library