簡體   English   中英

VS2005:單步執行C#代碼時,是否可以跳過代碼部分?

[英]VS2005: when stepping through C# code, is there way to skip through sections of code?

單步執行代碼時可以跳過某些部分嗎? 當調試器跳轉到屬性get和set時,我覺得這特別煩人。 有辦法避免這種情況嗎?

如果要跳過整個方法,則可以使用DebuggerStepThrough屬性對其進行標記:

[DebuggerStepThrough]
public void SomeMethod()
{
    // lots of code...
}

public int SomeProperty
{
    [DebuggerStepThrough] 
    get { return ComplexLogicConvertedToMethod(); } 
    [DebuggerStepThrough]      
    set { this.quantity = value ; }
}

請注意,該屬性阻止調試器進入方法或屬性,但是您始終可以在該方法中放置一個斷點,然后在此處停止1

該屬性非常有用,尤其是當您具有以下代碼時:

DoSomething(obj.SomeProperty);

如果要進入DoSomething ,然后按F11鍵,將在沒有屬性的情況下首先進入SomeProperty ,然后進入DoSomething 但是,有了該屬性,您將立即陷入DoSomething方法中。

1 如果要完全阻止用戶將斷點放入方法中,則可以使用DebuggerHiddenAttribute

可以選擇“ Step over properties and operators (Managed only)

或使用F10而不是F11(具有默認鍵盤綁定)

是的,有一個跨步(F10)功能和一個跨步至(F11)。

您可以使用“運行至光標”設置一個斷點。

使用F10時,除非您在更深的層次上設置了斷點,否則代碼僅會跳過每個語句。 我從來沒有發現調試器小姐會像您建議的那樣表現,請記住,我只使用VS2008。

您可以在不需要的任何方法/屬性上設置DebuggerStepThroughAttribute屬性。

您也可以使用“ Step Over”而不是“ Step Into”命令。

DebuggerStepThrough屬性添加到您的屬性:

[DebuggerStepThrough]
private static void DO() {
  Console.WriteLine("test");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM