gpt4 book ai didi

c# - 子类完全初始化后如何在基类中执行方法?

转载 作者:太空宇宙 更新时间:2023-11-03 19:39:33 25 4
gpt4 key购买 nike

我实现了以下结构:

public abstract class A
{
protected A()
{
Test();
}

private void Test()
{
Console.WriteLine("2");
}
}

public class B : A
{
public B() : base()
{
Console.WriteLine("1");
}
}

当我创建类 B 的实例时,方法 Test() 在类 B 中的构造函数调用之前执行。在我的例子中,这个方法应该在 child 完全初始化后运行。使其工作的一种可能方法是使 Test() 可从 B 访问并在其构造函数的末尾调用它。那会起作用,但是如果有人创建了 A 的另一个子类,他就有可能忘记调用该方法。我的问题是在基类中是否有更通用的解决方案来确保该方法在一个 child 完全初始化后执行。

最佳答案

答案是否定的。

.NET 或 C# 中没有内置任何东西可以确保所有后代构造函数都已执行后调用方法。

另一种方法是某种形式的工厂模式,您的类基本上只为您提供另一个已正确设置的实例,并调用所有必需的方法。

关于c# - 子类完全初始化后如何在基类中执行方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55647021/

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