在.NET类中封装抽象类或接口

时间:2013-07-10 07:03:57

标签: c# .net

在Scala中,可以定义基类或特征(接口)密封,以便允许扩展该类的唯一类必须放在同一个类中。

编码库时这是一种有用的模式,在.NET中是否有任何等价物?

1 个答案:

答案 0 :(得分:21)

模拟它的唯一方法是在抽象类中使用私有构造函数,并将实现作为嵌套类提供。

实施例

public abstract class Foo
{
  private Foo(int k) {}

  public class Bar : Foo
  {
     public Bar() : base(10) {}
  }
}