C#可以在抽象类中有一个构造函数吗?

JL.*_*JL. 1 c#

我有一个抽象类调用静态方法,到目前为止,它不需要任何参数.这最近发生了变化.实际上静态方法存在于另一个类中并设置了BaseMessageDirectory的值,但是在下面的这个例子中我简化了一些事情......

所以现在我想以这样的方式创建我的派生类,它们可以在继承期间初始化父类中的一些必需属性,这可能吗?

例如....

 public abstract class ParentClass
    {
          protected string BaseMessageDirectory;

          protected ParentClass(EnumOperationType operationType)
             {
                if(operationtype == 1)
                  {
                     BaseMessageDirectory = "one";
                  }
                else
                  {
                     BaseMessageDirectory = "two";
                  }
             }
    }
Run Code Online (Sandbox Code Playgroud)

Lee*_*Lee 6

是的,您可以定义构造函数,所有子类都必须调用它:

public class Child : ParentClass
{
    public Child() : base(EnumOperationType.One) { ... }
}
Run Code Online (Sandbox Code Playgroud)

  • 是的,类必须从它们的构造函数中调用它们的父构造函数之一 - 如果抽象类具有默认构造函数,那么您不需要明确地指定它(尽管可以). (2认同)