【发布时间】:2013-07-25 22:03:20
【问题描述】:
我验证 GetHashCode 和 Equals 允许 PropertyInfo 用作字典键。 (具体来说,哈希码相同,Equals返回true。)
那么,使用 PropertyInfo 作为字典键是否安全?有什么我不知道的东西使它们不适合作为字典键吗?
基本上,我正在尝试通过此处描述的 lambda 表达式引用属性 (Get property name and type using lambda expression),并且我希望缓存我的结果。
【问题讨论】:
-
您使用的是 PropertyInfo 的一部分吗?当您最有可能更改属性中的某些内容进而更改哈希值时,我看不出返回值如何相同。
-
我将在Code Review 发布此代码示例。
-
我认为您自己已经回答了这个问题,我不明白为什么它不起作用。确实,
Dictionary使用GetHashCode和Equals,如果它们返回所需的值,它应该可以工作......有什么原因导致你不安全地这样做失败?
标签: c# reflection