【发布时间】:2012-05-26 05:44:46
【问题描述】:
假设我们有 A 类和 B 类。ClassB 扩展了 A 类。(ClassB : ClassA)
现在假设每当我实例化 ClassB 时,我想运行一些随机代码,然后才调用“base”以到达 ClassA 构造函数。
喜欢:
class ClassA
{
public ClassA()
{
Console.WriteLine("Initialization");
}
}
class ClassB : ClassA
{
public ClassB() //: base()
{
// Using :base() as commented above, I would execute ClassA ctor before // Console.WriteLine as it is below this line...
Console.WriteLine("Before new");
//base() //Calls ClassA constructor using inheritance
//Run some more Codes here...
}
}
在我通常使用的编程语言中,我可以做到这一点,只需在Console.WriteLine() 之后调用super();但我不能在 C# 中实现它。有没有其他语法或其他方法可以做到这一点?
【问题讨论】:
-
在 C# 中使用基本构造函数无法做到这一点。您可以在基本方法中提取登录并使用 base.Method() 调用它。
-
您通常使用哪种语言?因为如果它是 Java,那你就错了——你也不能那样做......
-
@JonSkeet 我知道这已经很老了,但听起来像 Python。
标签: c# constructor