我知道我之前已经完成了这个,但我认为我的构造函数的执行顺序是我认为....
public class Class1
{
Class2 _class2;
public Class1()
{
_class2 = new Class2(this);
}
}
public class Class2
{
Class1 _parent; //corrected typo
public Class2(Class1 parent)
{
_parent = parent;
}
}
Run Code Online (Sandbox Code Playgroud)
麻烦的是,父总是以null结尾.
这样做的正确方法是什么?(也许我可以归咎于我患感冒的缓慢......)
编辑纠正TYPO(这不是真正的代码中的问题!)
Kel*_*tex 10
您可能输错了代码,但我认为您想要Class2的这个定义(请注意Class2构造函数中的this限定符):
public class Class2
{
Class1 parent;
public Class2(Class1 parent)
{
this.parent = parent;
}
}
Run Code Online (Sandbox Code Playgroud)
Ree*_*sey 10
从技术上讲,这应该可以工作,前提是您将Class2更改为包含 this.parent = parent;
但是,我不推荐这个.相反,我会建议在class1中初始化class2实例.根据Class2构造函数中的所有操作,您可能会导致自己陷入困境.
在class1上创建一个Class2属性并且延迟初始化它会导致在Class1的构造函数完成之后构造Class2,而不是在它构造期间构造,如果你的类变得更复杂,那么很可能不容易出错.
| 归档时间: |
|
| 查看次数: |
6376 次 |
| 最近记录: |