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

标签 c#

我有一个 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/

相关文章:

C#:从最小值到最大值的序列

c# - native dll 中的动态内存分配

c# - 如何将 XML 数据解析为自定义 C# 类的属性?

c# - 如何保护互联网上的连接?

c# - Asp Core 3 预览版 4 - JSON 驼峰格式

c# - 使用 C# 读取 Windows 事件日志(Source != ProviderName != SourceName)

c# - 未找到 NetCore 3.0.0 框架版本,即使已安装在 MacOS 中

C#:Dictionary<K,V> 如何在没有 Add(KeyValuePair<K,V>) 的情况下实现 ICollection<KeyValuePair<K,V>>?

c# - Windows 10应用-物联网系统管理能力

c# - 有没有办法防止 png/jpg 图像被转换为​​位图图像