¿GetType () devolverá el tipo más derivado cuando se llame desde la clase base?

¿GetType () devolverá el tipo más derivado cuando se llame desde la clase base?

Ejemplo

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
}

¿O debería hacer un método abstracto que las clases derivadas tendrán que implementar de la siguiente manera?

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();
   }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta