gpt4 book ai didi

c# - 在父构造函数之前调用子类构造函数

转载 作者:太空狗 更新时间:2023-10-29 22:55:37 24 4
gpt4 key购买 nike

是否可以先调用子类的构造函数再调用父类的构造函数?

有人说使用虚方法确实可以,但我找不到办法。

最佳答案

在 IL 中,这是可能的。在 C# 中:否。

可以使用virtual 在类型的构造函数之前运行a 方法,但不鼓励这样做并且有风险。但是:

class Foo {
public Foo() {
Console.WriteLine("Foo ctor");
SomeMethod(); // BAD IDEA (calling a virtual method in a ctor)
}
protected virtual void SomeMethod() {}
}
class Bar : Foo {
protected override void SomeMethod() {
Console.WriteLine("SomeMethod in Bar");
}
public Bar() : base() { /* only to show call order */
Console.WriteLine("Bar ctor");
}
}

这是个坏主意,因为您不能保证子类准备好方法调用。

关于c# - 在父构造函数之前调用子类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3320649/

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