Доступ к защищенным членам C # через переменную базового класса [duplicate]

На этот вопрос уже есть ответ здесь:

Почему я не могу получить доступ к защищенным членам C #, кроме как так? 7 ответов

Это может показаться довольно новым вопросом, но вы можете объяснить, почему метод Der.B () не может получить доступ к защищенному Foo через переменную базового класса? Это выглядит странно для меня:

public class Base
{
    protected int Foo;
}

public class Der : Base
{
    private void B(Base b) { Foo = b.Foo; } // Error: Cannot access protected member

    private void D(Der d) { Foo = d.Foo; } // OK
}

Спасибо!

Ответы на вопрос(5)

Ваш ответ на вопрос