c# - C# 中具有抽象子类的基类?

标签 c# oop abstract

public abstract class Request
{
   public class Parameters
   {
       //Threre are no members here
       //But there should be in inherited classes
   }

   public Request()
   {
       parameters = new Parameters();
   }

   public Parameters parameters;
}

两个问题:

  1. 我如何才能在构造函数中添加内容,但原始构造函数仍会被执行?

  2. 如何让子类可以将成员添加到 Parameters 类?

最佳答案

如果你正在做我认为你正在做的事情,你将不得不稍微改变你的构造函数:

public Request(Parameters parameters) {
  this.Parameters = parameters;
}

然后你可以这样做:

public class SpecificRequest : Request {
  public class SpecificRequestParameters : Request.Parameters {
  }
  public SpecificRequest() : base(new SpecificRequestParameters()) {
    //More stuff here
  }
}

您要解决的具体问题是什么?您在这里所做的事情似乎相当笨拙且过于复杂。

关于c# - C# 中具有抽象子类的基类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2618538/

相关文章:

c# - 如何创建 "custom protocol"并将其映射到应用程序?

c# - 如何避免重复的接口(interface)代码?

Java 泛型、扩展泛型和抽象类

java - 如何序列化对象的多个帧而不获取当前的反序列化?

c# - 我的 IEnumerable 是否应该枚举作为参数传递给 AddRange() 之类的方法的 IEnumerable?

c# - 非常简单的 2d 和 3d 图形库

javascript - 如果我在构造函数中导入模块怎么办?

c# - 继承和转换对象

scala - Scala 中是否可以等于抽象类型成员?

c# - 如何使用 DLL 在 C# 代码中读取 Excel 2010 文件?