Pull to refresh

Comments 31

Пожалуйста, потому и решил перевести. Часть этих советов я читал в какой-то книге по .NET 3.5 и тоже тогда узнал, что не все о них знают. А сейчас руки дошли и статья попалась хорошая для перевода. :)
как-то, после уже нескольких лет использования Visual Studio, я узнал, что при отладке можно потянуть желтую стрелочку, указывающую на текущую позицию выполнения программы, вверх и тем самым получить возможность еще раз выполнить уже выполненный код (изменив, например, некоторые переменные).
Было так стыдно, что не знал этого раньше.
Можно просто нажать Ctrl+Shift+F10 на нужной строчке, чтобы вернуть на нее управление. Что самое интересное, в главном меню этой команды почему-то нет ^_^
Right Click -> Set Next Statement
И?

В главном меню не содержатся все команды, им там не место. Данную конкретную команду поместили в контекстное меню, что совершенно правильно.
Отладочным командам место в меню Debug, я так считаю.
И много ты знаешь команд, которые недоступны через главное меню?
При переходе в главное меню теряется, в частности, визуальное отображение текущей строки — гасится курсор. Соответственно, куда именно будет перемещен результат выполнения «Set Next Statement» уже не видно, т.е. пользоваться уже не удобно.

>И много ты знаешь команд, которые недоступны через главное меню?
Посмотри Tools->Options->Environment->Keyboard. Там несколько сотен, возможно тысяч команд. Отнюдь не всем им требуется быть в главном меню.
Множеству команд типа cut/copy/paste это почему-то совершенно не мешает.

Ты конкретные примеры назови.
Тогда Edit.DeleteBlankLines, Edit.DeleteToEOL, там команд много разных.
Ну это совсем экзотика. Крайне редко используется. Хотя их тоже бы неплохо вынести на видное место, а то я даже не знал, что они есть ;)
Кстати для x64 это не работает. В настройках проекта можно выставить x86 и будет все норм.
А еще очень удобно перетащить «желтую стрелочку» вверх, тут же изменить значения у некоторых переменных и прогнать еще раз с другими параметрами.
Плюс к тому можно изменять код во время того, как остановлено выполнение программы.
Если заметили ошибку, можно переписать пару строчек и выполнить еще раз исправленный вариант без полного перезапуска приложения.
А подскажите как можно это сделать?
А вы просто попробуйте. Остановите программу во время выполнения и допишите пару строчек кода. Конечно это не всесильный инструмент и Вам не удастся написать новые методы, которых раньше не существовало, изменить структуру try catch и прочие вещи, которые очень привязаны к ходу выполнения, но простой код меняется легко.

В итоге студия может: останавливать выполнение, перетаскивать точку выполнения вверх/вниз (пропуская или повторяя код), менять значения переменных на ходу, менять КОД на ходу. Некоторые ошибки благодаря этому отлавливаются и исправляются в считанные секунды. Вопросы будут, задавайте
А-а-а, понятно, такие вещи я делал. :) Думал, что-то еще большее можно.
И я добавлю одну фичу, о которой узнал совсем недавно. Во время отладки в окошко Immediate Window можно вводить код, который выполняется в текущем контексте выполнения, тоже иногда бывает удобно.
Спасибо, кэп!

P.S. Стоит добавить, что лямбда-выражения в этом случае не работают.
Терминология немного непривычная: thread обычно переводят как «поток исполнения» или просто «поток», часто встречается «нить».

Ещё плюшка: Shift+F11 (Step out), возврат в точку вызова функции. Удобно шарахаться по call stack.
Да я часто пользуюсь связкой F10/Shift-F11
Спасибо за замечание исправил на «поток». Кода переводил думал о том, что есть более стандартное для программистов слово, но почему-то его не вспомнил хотя знаю. :)
Спасибо огромное, очень полезная информация. Похоже, рано или поздно придётся всё-таки купить 2010ю студию. Сделали бы они на неё скидку как на 2008ю в своё время…
Если вы хотите покупать 2010 студию, чтобы получить этот функционал в отладчике, то он весь есть и в 2008-ой студии. А если для всех удобств и новшеств для .NET 4, MVC 2, тогда да есть смысл.
Ради .NET 4. Но не думаю, что стоит так с этим спешить.
Спасибо за перевод.
Возможно, есть смысл написать, что некоторые возможности недоступны в Express Edition. Например, при ПКМ на breakpoint'e в VS 2008 Express Edition можно только удалить или деактивировать её.
извините, не совсем по теме…
Silverlight обновился до 4й версии и перестал работать дебуг сильверлайт приложений.
Что делать?
Чем больше работаю со студией, тем больше нахожу в ней «плюшек». Спасибо Вам и Скотту :).

ПС: Я бы воспользовался Debug.Write(); вместо написания макроса.
Пожалуйста. :)
Всегда хорошо, когда есть много способов сделать одно и то же.
Но видимо он нас хотел научить как писать макросы. :)
Sign up to leave a comment.

Articles