这是这个问题的后续: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?
s也是MethodInfo
如此。
Human
我可以理解什么时候是接口,或者什么时候name
是Human
抽象/虚拟的,必须有所不同。但是为什么密封类型会如此呢?不正是name
of吗?Man
name
Human
澄清:正如乔恩所说,他们ReflectedType
的 s 是不同的。ReflectedType
在决定接口成员或被覆盖成员的相等性时,在相等性应该派上用场,因为它们是不同的。但我认为不应该考虑决定上述简单案例的平等性。可能是设计团队想要保持一致。只是想知道是什么原理促使框架设计人员ReflectedType
在决定跨多个类的同一成员的相等性时考虑属性。