2012-12-05 65 views
0

我已經聲明瞭一個屬性來捕獲當前頁面的查詢字符串。我也有一個與querystring變量具有相同屬性名稱的類。下面是我的調試環境,奇怪的新實例創建語法行爲

這是我所期望的p.ParishId有,這個我有,當我檢查p對象

enter image description here

但它顯示的查詢字符串變量的值。這對ParishId

enter image description here

我被放置鼠標爲什麼沒有看到新分配的Guid?

+0

您是否試過將private改爲public,看看它是否顯示在調試器中 – MethodMan

+0

@DJKRAZE我的意思是,大括號內的p.ParishId值反映了QueryString的值而不是新的Guid我分配給它。 querystring的ParishId很好。檢查對象'p'顯示正確的值,但檢查大括號內的'ParishId'則顯示查詢字符串值 – codingbiz

+0

調試器的工作原理略有不同。當您將鼠標移到標識符上時,它將根據當前範圍對其進行評估。當前範圍中唯一的'ParishId'是從'QueryString'獲取它的類的屬性。 – Igor

回答

2

調試器根據當前範圍調用您當前所在實例的屬性。 p.ParishId - 是實例pParishId的屬性 - 是發生在範圍內的任何屬性,在您的情況下,它是從QueryString獲取值的類。

更新:

我不知道你想要什麼引用。將鼠標移動到標識符上時,調試器執行與將該標識符添加到Watches列表時相同的操作,即將其解析到當前範圍中。在創建時賦予實例字段/屬性的C#功能僅僅是語言語法糖。要檢查ParishId實例p的屬性,您需要評估p.ParishId或在p類的內部代碼。

+0

您可以發佈一個參考鏈接來確認您的答案嗎? – codingbiz

+0

@codingbiz - 什麼,你不相信我:)?查看我的答案更新。 – Igor