How can I disable external inheritance (without classes) in C#?
How can I disable external inheritance without using classes? I know it can be done with classes like this:

    public abstract class NoInherit
    {
        internal NoInherit() { }
    }

    public sealed class MyType : NoInherit { /* ... */ }

But not with interfaces. I don't want to use classes because I want to inherit `MyType` from another class and C# doesn't support multiple inheritance.

Perhaps I should explain better what I'm trying to do. I'm attempting to create an object-like class but that only accepts some types.

    List<NoInherit> x = new List<NoInherit>();
    x.Add(new MyType()); // OK
    x.Add(new MyType2()); // OK
    x.Add(123); // ERROR
How can I disable external inheritance (without classes) in C#?
===

How can I disable external inheritance without using classes? I know it can be done with classes like this:

    public abstract class NoInherit
    {
        internal NoInherit() { }
    }

    public sealed class MyType : NoInherit { /* ... */ }

But not with interfaces. I don't want to use classes because I want to inherit `MyType` from another class and C# doesn't support multiple inheritance.

Perhaps I should explain better what I'm trying to do. I'm attempting to create an object-like class but that only accepts some types.

    List<NoInherit> x = new List<NoInherit>();
    x.Add(new MyType()); // OK
    x.Add(new MyType2()); // OK
    x.Add(123); // ERROR