Почему член базового класса отличается от того же члена в производном классе?

Это продолжение этого вопроса:Лямбда-выражение не возвращает ожидаемого MemberInfo

class Human
{
    public string name { get; set; }
}

class Man : Human
{

}

var m1 = typeof(Human).GetProperty("name");
var m2 = typeof(Man).GetProperty("name");

//m1 != m2 why?

То же самое относится и кMethodInfos.

Я могу понять, что должна быть разница, когдаHuman это интерфейс, или когдаname изHuman является абстрактным / виртуальным. Но почему это так для закрытых типов? неname изMan именно такname изHuman?

Разъяснение: Как Джон говорит ихReflectedTypeс разные.ReflectedType равенство должно пригодиться при принятии решения о равенстве членов интерфейса или переопределенных членов, поскольку они различны. Но я не думаю, что это следует учитывать для принятия решения о равенстве простых случаев, как указано выше. Может быть, команда дизайнеров хотела быть последовательной. Просто интересно, какое обоснование заставило дизайнеров фреймворков задуматьсяReflectedType свойство в решении равенства одного и того же члена, охватывающего несколько классов.

Ответы на вопрос(1)

Ваш ответ на вопрос