C# private (hidden) base class

Posted by Loadmaster on Stack Overflow See other posts from Stack Overflow or by Loadmaster
Published on 2012-06-01T22:31:07Z Indexed on 2012/06/01 22:40 UTC
Read the original article Hit count: 197

Filed under:
|
|
|

It is possible to make a C# base class accessible only within the library assembly it's compiled into, while making other subclasses that inherit from it public?

For example:

using System.IO;

class BaseOutput: Stream           // Hidden base class
{
    protected BaseOutput(Stream o)
    { ... }

    ...lots of common methods...
}

public class MyOutput: BaseOutput  // Public subclass
{
    public BaseOutput(Stream o):
        base(o)
    { ... }

    public override int Write(int b)
    { ... }
}

Here I'd like the BaseOutput class to be inaccessible to clients of my library, but allow the subclass MyOutput to be completely public. I know that C# does not allow base classes to have more restrictive access than subclasses, but is there some other legal way of achieving the same effect?

© Stack Overflow or respective owner

Related posts about c#

Related posts about inheritance