VS2005: при переходе через код C # есть ли способ пропустить разделы кода? - PullRequest
1 голос
/ 16 июля 2010

Что можно сделать, чтобы пропустить части кода при пошаговом выполнении кода?Я нахожу это особенно раздражающим, когда отладчик переходит к свойству, получает и устанавливает.Есть ли способ избежать этого?

Ответы [ 7 ]

9 голосов
/ 16 июля 2010

Если вы хотите пропустить весь метод, вы можете пометить его атрибутом 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.

5 голосов
/ 16 июля 2010

есть опция Step over properties and operators (Managed only)

или используйте F10 вместо F11 (с привязкой клавиатуры по умолчанию)

1 голос
/ 16 июля 2010

Да, есть функция перехода через (F10), а также шаг в (F11).

0 голосов
/ 16 июля 2010

Добавьте DebuggerStepThrough атрибут к вашей собственности:

[DebuggerStepThrough]
private static void DO() {
  Console.WriteLine("test");
}
0 голосов
/ 16 июля 2010

Вы можете установить атрибут DebuggerStepThroughAttribute для любых методов / свойств, в которые вы не хотите входить.

И вы также можете использовать команду «Step Over» вместо «Step Into».

0 голосов
/ 16 июля 2010

Когда вы используете F10, код просто переходит через каждый оператор, если вы не установили точку останова на более глубоком уровне. Я никогда не обнаруживал, что ошибка отладчика ведет себя так, как вы предлагали, учтите, что я использую только VS2008.

0 голосов
/ 16 июля 2010

Вы можете использовать «запустить до курсора» для одноразовых точек останова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...