有沒有什麼辦法可以在自動實現的屬性中設置setter/getter的斷點?調試自動屬性
int Counter { get; set; }
除了將其更改爲標準的屬性(我做它通過這種方式,但要做到這一點我必須要改變和重新編譯整個項目)
有沒有什麼辦法可以在自動實現的屬性中設置setter/getter的斷點?調試自動屬性
int Counter { get; set; }
除了將其更改爲標準的屬性(我做它通過這種方式,但要做到這一點我必須要改變和重新編譯整個項目)
使用Visual Studio 2008,2010,2012,2013:
對於get
,類型:ClassName.get_Counter()
對於set
,請鍵入:ClassName.set_Counter(int)
當遇到斷點時,您將得到一個「無源代碼」,但您會在調用堆棧中獲得調用位置。
我發現這個解決方案here on MSDN
Briliant。謝謝。我不需要將自動屬性更改爲標準(帶有字段)。並且不需要重新編譯:) – 2011-07-16 22:24:53
我希望我能對此讚賞兩次! – 2012-07-25 19:44:14
這也適用於默認的構造函數。使用'ClassName.ctor' – 2013-04-04 13:30:46
設置斷點如果要設置屬性或獲取財產,沒有其他辦法。
你可以做到這一點通過查找所有引用選項
而且由於它是唯一的存儲值,並沒有在二傳手一部分,所以你怎麼調試任何代碼?
是的,但是當你在20個地方使用它時呢?而且每個新的斷點都會減慢調試過程。或者,如果訪問財產是由框架完成的(例如序列化)? – 2010-12-10 11:04:03
有條件的中斷點。打開中斷點,右鍵單擊它併爲其分配條件... – Phill 2010-12-10 11:45:38
如果我是你,我會暫時讓這個屬性成爲一個標準支持的屬性......設置你的斷點,然後你可以改回來。
這個問題是很老,但它是值得的,它只是工作在2015年VS
class X {
public string name {
set;
get; // setting a breakpoint here will break in VS 2015!
}
}
與Google合作的什麼IDE?視覺工作室? (我建議你爲你的問題添加一個相應的標籤,因爲這實際上更多地涉及到特定IDE而不是C#語言本身。) – stakx 2010-12-10 11:23:26
@stakx在.NET世界中,我們有一個默認的IDE :) – Stilgar 2010-12-10 11:35:21
@Stilgar,I我意識到這一點,畢竟我自己也在使用VS。但「默認」並不意味着它是唯一的,也不是說每個人都使用它。由於這是一個IDE問題,因此瞭解我們在這裏查看哪個IDE非常重要。因此我以前的評論。 – stakx 2010-12-10 12:16:15