我知道我以前做过这个,但是我认为我的构造函数的执行顺序有些曲折……。
public class Class1
{
Class2 _class2;
public Class1()
{
_class2 = new Class2(this);
}
}
public class Class2
{
Class1 _parent; //corrected typo
public Class2(Class1 parent)
{
_parent = parent;
}
}
问题是父级总是以null结尾。
这样做的正确方法是什么? (也许我可以把我的迟钝归咎于感冒。)
编辑以更正打字错误(这不是真正的代码中的问题!)
最佳答案
从技术上讲,这应该可行,只要您将Class2更改为包括this.parent = parent;
但是,我不建议这样做。相反,我建议延迟在class1内初始化class2实例。根据在Class2构造函数中所做的所有操作,您可能会陷入麻烦的境地。
在class1上创建Class2属性并延迟对其进行初始化将导致Class2在Class1的构造函数完成之后而不是在构造过程中进行构造,如果您的类变得更复杂,则很可能不容易出错。
关于c# - 在构造函数中传递对 'this'的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/734715/