Уплотнение абстрактного класса или интерфейса в классе .NET
В Scala можно определить базовый класс или свойство (интерфейс), запечатанные, так что только классы, которым разрешено распространять этот класс, должны быть помещены в один класс.
Это полезный шаблон при кодировании библиотек, есть ли какой-либо эквивалент в .NET?
Ответы
Ответ 1
Единственный способ моделирования заключается в том, чтобы иметь частный конструктор в абстрактном классе и обеспечить реализацию как вложенные классы.
Пример
public abstract class Foo
{
private Foo(int k) {}
public class Bar : Foo
{
public Bar() : base(10) {}
}
}