2017-06-12 65 views
-2

在調試過程中,我怎麼知道objobj2引用下面代碼中的同一個對象?VS 2015調試:我如何知道2個對象變量是否具有相同的對象引用?

在VS 2008中,我可以很容易地看到,通過查看監視窗口或局部變量窗口或在變量的值提示,因爲它們都表現出對象的地址,這是非常有用的(代碼示例是C++/CLI,但在C#中測試以及):

enter image description here

但2015年VS不會。我如何在這裏獲得這些信息?

+0

我爲此使用GetHashCode(),2個不同的實例通常給出不同的哈希碼,但它可能會非常棘手。 – 3615

+0

@ 3615:不安全。實例可能不同,但包含相同的數據。 –

+0

您所要做的就是使用標準機制來測試引用相等(對象標識)。請參閱標記重複的細節。使用即時窗口進行實際的呼叫,傳遞要檢查的兩個參考。 –

回答

0

經過進一步的搜索和測試,我發現
Uniquely Identifying Reference Types in the Debugger
通過創建「對象ID」提供了一個很好的解決方法。然而,在我看來,這只是一種解決方法,我寧願如果我能立即看到所需的信息。

+0

我不明白如何使對象ID是「解決方法」。只要您創建對象ID,您就會立即看到所需的信息,就像您想要的一樣。我注意到,你發現的帖子甚至提到你可以在即時窗口中調用'object.ReferenceEquals()',就像你想要測試代碼中的引用相等一樣。所以也有這個選擇。 –

相關問題