比方說,我有這個屬性如何調試Visual Studio 2010中的屬性集?
public ISetting Setting { get; set; }
我怎樣才能在設定斷點弄?這樣當有些東西正在設置一個值時,程序會暫停。
我儘量做到這樣
public IDatabaseConnectionSetting ConnectionSetting {
get;
set;
}
並把斷點上線,但它仍然無法正常工作。紅色斷點熒光筆突出顯示整個財產聲明
比方說,我有這個屬性如何調試Visual Studio 2010中的屬性集?
public ISetting Setting { get; set; }
我怎樣才能在設定斷點弄?這樣當有些東西正在設置一個值時,程序會暫停。
我儘量做到這樣
public IDatabaseConnectionSetting ConnectionSetting {
get;
set;
}
並把斷點上線,但它仍然無法正常工作。紅色斷點熒光筆突出顯示整個財產聲明
使用完整屬性而不是自動屬性。
快捷是propfull
private ISetting setting;
public ISetting Setting
{
get
{
return setting;
}
set
{
setting = value;
}
}
要使用代碼片斷快捷方式,類型propfull
然後按TAB
兩次。
不,你不能。自動屬性像帶有後備存儲的屬性一樣編譯。我認爲沒有理由讓它們出現斷點,因爲你必須把它們分配給他們,在那裏檢查你的財產。
private bool TestProperty { get; set; }
編譯像
[CompilerGenerated]
private bool <TestProperty>k__BackingField;
[CompilerGenerated]
private void set_TestProperty(bool value)
{
this.<TestProperty>k__BackingField = value;
}
[CompilerGenerated]
private bool get_TestProperty()
{
return this.<TestProperty>k__BackingField;
}
它可以在任何地方設置 - 在每個調用setter的地方打破setter更有用。 –
同意以上 –
我同意。這應該是VS的特點。請問在什麼情況下,您需要從多個地方撥打電話?只是好奇,謝謝。 –
有一個更好的解決方案在這裏:Can't set breakpoints on an auto-property setter ? Why?
使用Visual Studio 2008,2010,2012:
- 轉到斷點窗口
- 新建 - >歇在功能...
對於GET,類型:ClassName.get_CurrentFramesize()
對於集類型:ClassName.set_CurrentFramesize(INT)
你會得到一個「沒有來源可用」的斷點時,但你會得到調用>位置在調用堆棧。
我發現這個解決方案在這裏:http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/b1dd0dc3-e9c1-402a-9c79-a5abf7f7286a
我覺得很奇怪,如果我有我的代碼更改爲全屬性只是爲了調試它 –
@Louis是的,我同意和希望有人會用我不知道存在的新技術來回答。但是我知道很多像'var result = blah.Evaluate;返回結果;'專門讓他們可以在返回行上放置一個斷點並檢查返回的內容。這是同樣的事情。 –
好的。只是好奇,你是什麼意思按兩次標籤?通常我輸入它,標籤,類型,標籤,類型。 –