gpt4 book ai didi

c# - 来自 Expression 的 PropertyInfo 是否等于来自 GetProperties() 的 PropertyInfo

转载 作者:太空狗 更新时间:2023-10-29 23:38:38 28 4
gpt4 key购买 nike

我知道 typeof(T) == typeof(T)永远为真,因为 Type对象基本上是静态的,只有一个 Type每个类类型都存在实例(如果这是错误的,请纠正我......我有几个程序在这个假设下运行)。

我很难在文档中找到 PropertyInfo对象表现出相同的属性。

我的申请是这样的:

我有一个 Reflector<T>取结果的类 typeof(T).GetProperties(...)并存储结果 PropertyInfo对象作为字典中的键。

另外,我有一个表达式解析器,它试图解析一个表达式,该表达式描述了对 Func<T, TResult> 类型的某个属性的访问。 (例如 t => t.SomeProperty 其中 Tt.GetType()TResultSomeProperty 的类型)。经过一些计算,我最终得到一个 PropertyInfo来自 MemberExpression.Member 的对象来自过去的Expression .

结果PropertyInfo然后用作 Dictionary.TryGetValue 中的键调用以获取有关存储在 Reflector<T> 中的属性的附加数据的词典。

问题

我可以放心吗PropertyInfo来自 MemberExpression.Member将等于 ( == ) PropertyInfo对于从 Type.GetProperties 返回的同一属性或者可能有两个不同的 PropertyInfo实际上引用相同类型的相同属性的实例?

为了讨论的目的,可以假定该属性是非虚拟的,或者如果它是虚拟的则不会被覆盖。

最佳答案

基于reference source code , 它应该是。 PropertyInfo 实例是从匹配的类型中获取的。

关于c# - 来自 Expression 的 PropertyInfo 是否等于来自 GetProperties() 的 PropertyInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26661544/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com