在IL中,这是可能的.在C#中:没有.
您可以使用virtual运行一个该类型的构造函数前一种方法,但它是气馁和风险.但:
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");
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个坏主意,因为您无法保证子类已准备好进行方法调用.
| 归档时间: |
|
| 查看次数: |
2203 次 |
| 最近记录: |