0
我不明白這一點,請幫助。這裏是我的代碼:VB.Net只讀屬性被自動初始化而沒有獲取代碼執行
Class MyCookie
Private _CookieName As String
ReadOnly Property CookieName As String
Get
If String.IsNullOrWhiteSpace(_CookieName) Then _CookieName = "Test"
Return _CookieName
End Get
End Property
End Class
我在屬性獲取過程中放置一個斷點。當我初始化MyCookie類時,MyCookie.CookieName已經有了「測試」,但是斷點從未被擊中!
我缺少什麼?
我會測試你說什麼,但_CookieName是私人的,_CookieName的值設置的唯一地方是CookieName獲取prcoedure。 – kaiyaq
是的,那麼?如果您在調試器中觀看'CookieName',那麼調試器必須執行該屬性的getter以獲取值。它不能把它從空氣中抽出來。如果'_CookieName'字段以前沒有設置過,那麼當然屬性getter會將其設置爲「Test」,然後返回該值。這完全如你所料。正如我所說的,你沒有看到斷點的原因是它由調試器執行,而不是由應用程序執行。 – jmcilhinney
啊,今天早上不明白你的答案。重新閱讀後,現在對我來說很有意義。我不知道IDE的這種行爲。謝謝 – kaiyaq