Membros protegidos pelo C # acessados ​​via variável de classe base [duplicado]

Esta questão já tem uma resposta aqui:

Por que não consigo acessar membros protegidos pelo C # exceto assim? 7 respostas

Pode parecer bastante novato, mas você pode explicar por que o método Der.B () não pode acessar a variável de classe protegida Foo via Base? Isso parece estranho para mim:

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
}

Obrigado!

questionAnswers(5)

yourAnswerToTheQuestion