2013-07-25 80 views
2

我驗證了GetHashCode和Equals允許PropertyInfo用作字典鍵。 (具體來說,散列碼是相同的,並且Equals返回true。)使用PropertyInfo作爲字典鍵碼

是否安全?是否將PropertyInfo用作字典鍵?有什麼我不知道,這使得它們不適合作爲字典鍵嗎?

基本上,我試圖通過lambda表達式引用屬性,如此處所述(Get property name and type using lambda expression),我希望緩存我的結果。

+0

您是否使用PropertyInfo的一部分?當你最有可能改變屬性中的某些東西時,我不會看到返回值是如何變化的,而這又會改變哈希值。 – Bit

+0

我會用代碼示例在[代碼評論](http://codereview.stackexchange.com/)上發佈。 – LarsTech

+2

我想你自己幾乎是回答了這個問題,我不明白爲什麼它不起作用。的確,'Dictionary'使用'GetHashCode'和'Equals',如果這些返回所需的值,它應該可以工作......是否有任何原因會導致你不安全的做這件事? –

回答

2

PropertyInfo可以用作字典的關鍵字,唯一的性能命中可能是如何獲取字典用法的propertyinfo。