Как я могу отключить внешнее наследование без использования классов? Я знаю, что это можно сделать с помощью таких классов:
public abstract class NoInherit
{
internal NoInherit() { }
}
public sealed class MyType : NoInherit { /* ... */ }
Но не с интерфейсами. Я не хочу использовать классы, потому что я хочу наследовать MyType
от другого класса, а C # не поддерживает множественное наследование.
Возможно, мне лучше объяснить, что я пытаюсь сделать. Я пытаюсь создать объектный класс, но он принимает только некоторые типы.
List<NoInherit> x = new List<NoInherit>();
x.Add(new MyType()); // OK
x.Add(new MyType2()); // OK
x.Add(123); // ERROR