gpt4 book ai didi

c# - 在构造函数中传递对 'this' 的引用

转载 作者:太空狗 更新时间:2023-10-29 17:33:05 24 4
gpt4 key购买 nike

我知道我以前做过这个,但我认为我的构造函数执行顺序有点扭曲......

public class Class1
{
Class2 _class2;

public Class1()
{
_class2 = new Class2(this);
}
}

public class Class2
{
Class1 _parent; //corrected typo

public Class2(Class1 parent)
{
_parent = parent;
}
}

问题是 parent 总是以 null 结尾。

执行此操作的正确方法是什么? (也许我可以将我的缓慢归咎于感冒..)

已编辑以更正拼写错误(这不是实际代码中的问题!)

最佳答案

从技术上讲,这应该可行,前提是您将 Class2 更改为包含 this.parent = parent;

但是,我不推荐这样做。相反,我建议在 class1 中延迟初始化 class2 实例。根据在 Class2 的构造函数中所做的一切,您可能会把自己带入恶劣的境地。

在 class1 上创建 Class2 属性并延迟初始化它会导致 Class2 在 Class1 的构造函数完成后构造,而不是在构造期间构造,如果您的类变得更复杂,这很可能更不容易出错。

关于c# - 在构造函数中传递对 'this' 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com