gpt4 book ai didi

C# 在父构造函数中访问调用者

转载 作者:行者123 更新时间:2023-11-30 19:20:11 25 4
gpt4 key购买 nike

我有一个 child 和一个父类,因此:

class B : A{
public B : base(){
// stuff
}
}



class A{
public A(){

// how can I gain access here to the class that called me,
// ie the instance of class B that's being instantiated.

}
}

如上,我的问题是在父类的构造函数中能不能看到谁调用了父构造函数。

一种方法是在 A 中有一个单独的函数,您可以从 B 中将 this 传递给该函数。有没有更简单的方法,即我可以这样做吗在对象初始化期间,还是在对象构建过程中太早了?在我可以从 A 中访问它之前,整个对象 B 是否需要“准备好”?

谢谢!

最佳答案

A 中,这很简单 - 您只需使用 this 并将其转换为 B 如果您确信它确实 B 而不是任何其他派生类。该对象将已经是 B 的一个实例。

但是,从构造函数调用虚方法通常是一个的想法,因为 B 构造函数的主体尚未运行,所以它只是半初始化。我曾遇到过一些让我很痛苦的情况,但如果您告诉我们您想要实现的目标,我们可能会想出一些更清晰的东西。

关于C# 在父构造函数中访问调用者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7093991/

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