Будет ли GetType () возвращать наиболее производный тип при вызове из базового класса?

Будет ли GetType () возвращать наиболее производный тип при вызове из базового класса?

Пример:

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
}

Или я должен просто создать абстрактный метод, который производные классы должны будут реализовать следующим образом?

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();
   }
}
115
задан Peter Mortensen 8 April 2014 в 16:18
поделиться