title: C# protected members accessed via base class variable
body: <p>It may seems rather newbie question, but can you explain why method Der.B() cannot access protected Foo via Base class variable? This looks weird to me:</p>
  
  <pre><code>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
  }
  </code></pre>
  
  <p>Thanks!</p>