有一些机制允许只在C#中使用N类继承类?
答案 0 :(得分:7)
您可以将它和它的派生类放在一个单独的程序集中,并将基类的构造函数声明为internal
。这样,虽然您可以在不同的程序集中继承它,但是您无法实例化任何派生类。
答案 1 :(得分:4)
不,但是如果超过限制,你总是可以让构造函数抛出异常。
答案 2 :(得分:3)
// can be inherited only by classes in the same assembly
public abstract class A
{
protected internal A() { }
}
// can't be inherited
public sealed class B : A
{
}
答案 3 :(得分:1)
仅仅因为我个人的启发,我想更多地了解商业背景,这使得这样的设计选择变得可取,因为我第一次看到这个标题是“哦,非常非常糟糕的主意!一个基类是绝对的应该知道任何事情(更糟糕的是:统治)它的派生类“。
答案 4 :(得分:-1)
你可以使类AN抽象并在任意数量的类中继承它。