Por que um membro da classe base é diferente do mesmo membro na classe derivada?

Este é um acompanhamento para esta questão:Expressão lambda não retorna esperado 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?

O mesmo vale paraMethodInfos.

Eu posso entender que tem que haver uma diferença quandoHuman é uma interface, ou quandoname doHuman é abstrato / virtual. Mas por que é assim para tipos selados? Não éname doMan exatamentename doHuman?

Esclarecimento: Como Jon dizReflectedTypes são diferentes.ReflectedType em igualdade deve ser útil ao decidir a igualdade de membros da interface ou membros substituídos, uma vez que são diferentes. Mas não acho que deva ser considerado para decidir a igualdade de casos simples como os acima. Pode ser que a equipe de design quisesse ser consistente. Basta saber qual a razão que levou os designers de framework a considerarReflectedType propriedade ao decidir a igualdade do mesmo membro abrangendo várias classes.

questionAnswers(1)

yourAnswerToTheQuestion