title: Will GetType() return the most derived type when called from the base class?
body: <p>Will GetType() return the most derived type when called from the base class?</p>
  
  <p>Example:</p>
  
  <pre><code>public abstract class A
  {
      private Type GetInfo()
      {
           return System.Attribute.GetCustomAttributes(this.GetType());
      }
  }
  
  public class B : A
  {
     //Fields here have some custom attributes added to them
  }
  </code></pre>
  
  <p>Or should I just make an abstract method that the derived classes will have to implement like the following?</p>
  
  <pre><code>public abstract class A
  {
      protected abstract Type GetSubType();
  
      private Type GetInfo()
      {
           return System.Attribute.GetCustomAttributes(GetSubType());
      }
  }
  
  public class B : A
  {
     //Fields here have some custom attributes added to them
  
     protected Type GetSubType()
     {
         return GetType();
     }
  }
  </code></pre>