这是一个后续到这样一个问题: Lambda表达式不返回预期的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?
这同样适用于MethodInfo
秒。
我可以理解,必须有一个差异,当Human
是一个接口,或当name
的Human
是抽象/虚。 但是,为什么会这样的密封类型? 没有name
的Man
正是name
的Human
?
澄清:作为乔恩说,他们ReflectedType
s为不同的。 ReflectedType
决定接口成员或重写成员的平等时,因为它们是不同的平等应该来得心应手。 但我不认为它应该被视为决定像上面的简单的情况下平等。 可能是设计团队希望是一致的。 只是不知道什么理由开车框架设计者考虑ReflectedType
属性决定同一个成员的平等跨越多个类。