Coo*_*ter 3 c# design-patterns
我想做与此处描述完全相同的事情,但在C#中.
public interface IFoo { void DoSomething(); }
public class Foo : IFoo
{
    public void DoSomething() {...}
    protected void Bar() {...}
}
public class Foo2 : IFoo
{
    private readonly Foo _foo;
    public Foo2 (Foo foo) { _foo = foo; }
    public void DoSomething() {...}
    protected void Bar()
    {
        _foo.Bar(); // cannot access Bar() from here
    }
}
我看了几个类似的问题,但没有一个真正告诉你如何解决这个问题.试图用受保护的方法装饰一个类首先做错事吗?
受保护的方法仅对子类可见.如果Foo和Foo2是在同一个程序集中,你可以Foo.Bar改为内部:
public class Foo
{
    internal void Bar() { ... }
}