Los miembros protegidos de C # accedieron a través de la variable de clase base [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué no puedo acceder a miembros protegidos de C # excepto de esta manera? 7 respuestas

Puede parecer una pregunta bastante nueva, pero ¿puede explicar por qué el método Der.B () no puede acceder a Foo protegido a través de la variable de clase Base? Esto me parece raro:

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
}

¡Gracias!

Respuestas a la pregunta(5)

Su respuesta a la pregunta