Скрытые функции Visual Studio (2005-2010)?

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

182
задан 8 revs, 4 users 37% 23 May 2017 в 02:10
поделиться

93 ответа

Ctrl-M + коллапс переключателя Ctrl-L все - разворачивают весь

2
ответ дан davidnr 23 November 2019 в 06:01
поделиться

Ctrl+L удаляет текущую выбранную строку. Это экономит время (если используется ответственно, конечно!!!)

2
ответ дан Rad 23 November 2019 в 06:01
поделиться

Вот Макро-источник для моего aspx/aspx.cs плавника. Это работает в 2005, но это может иметь проблемы в 08.. Я не уверен... Это было взято от моего другого cpp/h плавника, таким образом, могла бы быть некоторая уборка, должен был сделать его лучшим, которым это могло быть. Мне не платят для записи Макросов, таким образом, я должен уничтожить, хотя их как можно быстрее, когда мне нужен тот.

    Sub OpenASPOrCS()
    'DESCRIPTION: Open .aspx file if in .cs file, open .cs file if in .aspx file
    On Error Resume Next

    ' Get current doc path
    Dim FullName
    FullName = LCase(ActiveDocument.FullName)
    If FullName = "" Then
        MsgBox("Error, not a .cs or asp file!")
        Exit Sub
    End If

    ' Get current doc name
    Dim DocName
    DocName = ActiveDocument.Name

    Dim IsCSFile
    IsCSFile = False
    Dim fn
    Dim dn
    If (Right(FullName, 3) = ".cs") Then
        fn = Left(FullName, Len(FullName) - 3)
        dn = Left(DocName, Len(DocName) - 3)
        IsCSFile = True
    ElseIf ((Right(FullName, 5) = ".aspx") Or (Right(FullName, 5) = ".ascx")) Then
        fn = FullName + ".cs"
        dn = DocName + ".cs"
    Else
        MsgBox("Error, not a .cs, or an asp file!")
        Exit Sub
    End If

    Dim doc As EnvDTE.Documents

    DTE.ItemOperations.OpenFile(fn)
    doc.DTE.ItemOperations.OpenFile(fn)

    If Err.Number = 0 Then
        Exit Sub
    End If

    ' First check to see if the file is already open and activate it
    For Each doc In DTE.Documents()
        If doc.Name = dn Then
            doc.Active = True
            Exit Sub
        End If
    Next

End Sub
2
ответ дан 2 revs 23 November 2019 в 06:01
поделиться

Вставка копии из окна Watch расширенных свойств объекта в отладчике в Excel сохранит табличный формат и сохранит данные после того, как сеанс отладки будет закончен.

2
ответ дан Mark Cidade 23 November 2019 в 06:01
поделиться

Я думаю способность щелкнуть правой кнопкой по Stored Procedure in Server Explorer и отладке..

2
ответ дан RobS 23 November 2019 в 06:01
поделиться

Я всегда карта control + alt + f4 к документам. CloseAllWindows в опциях> среда> клавиатура.

несколько более интуитивно, чем использование мыши.

2
ответ дан Alex 23 November 2019 в 06:01
поделиться

Отладчик:-) Блокнот Ударов милями.

2
ответ дан Michael Stum 23 November 2019 в 06:01
поделиться

Существует статья об этом. Это, кажется, длинный набор.

3
ответ дан Taptronic 23 November 2019 в 06:01
поделиться

Shift+Alt+F10 поднимает созданный в рефакторинге меню. Большой для добавления тупиков метода от интерфейсов и добавления Используя операторы автоматически для определенных классов.

3
ответ дан Dave Arkell 23 November 2019 в 06:01
поделиться
  • Ctrl-K, Ctrl-C для комментария блока текста с // в запуске
  • Ctrl-K Ctrl-U, чтобы не прокомментировать блок текста с // в запуске

не Может жить без него!:)

4
ответ дан Thomas Bratt 23 November 2019 в 06:01
поделиться

Нажмите клавишу F8 для циклического повторения через результаты поиска. (Shift+F8 для обратного направления)

Хит F12 для движения в определение переменной.

Сдвиг + высокий звук + клавиши со стрелками = выбор Блока!

4
ответ дан David 23 November 2019 в 06:01
поделиться
  • окна памяти, очень полезные, если Вы делаете низкоуровневый материал.
  • Управление + K, Управление + F - выбор Формата - большой для того, чтобы быстро сделать код аккуратным
  • регионы, некоторые любят их, некоторые ненавидят их, большинство даже не знает, что они существуют
  • переменные Замены в окнах отладки во время выполнения
  • Точки трассировки
  • , Условные точки прерывания
  • Удерживают Высокий звук и перетаскивают для 'прямоугольного' выбора.
  • Control+B для точки останова, для повреждения в функции
  • Control+I для возрастающего поиска, F3 для итерации
4
ответ дан Ali Parr 23 November 2019 в 06:01
поделиться

Текстовые выборы перетаскивать-отбрасывания к окну Watch, в то время как в отладчике.

6
ответ дан Mark Cidade 23 November 2019 в 06:01
поделиться

CTRL-D тогда вводит"> "тогда имени файла. Если стандартная панель инструментов произошла, crtl-d вставляют Вас, находят поле комбинированного списка и существует теперь выпадающее с файлами в Вашем решении, которые соответствуют запуску имени файла, которое Вы ввели. Выберите один, и это откроет его. Эта альтернатива открытому filedialog является потрясающей для больших решений с большим количеством каталогов.

7
ответ дан Steve Steiner 23 November 2019 в 06:01
поделиться

Ctrl-T меняет местами последние две буквы. Например, «swithc» -> «switch».

2
ответ дан 23 November 2019 в 06:01
поделиться

Вы можете перетащить маленькую серую рамку над вертикальной полосой прокрутки, чтобы разделить окно на два представления одного и того же файла, которые можно прокручивать независимо - отлично, если вы сравниваете две части тот же файл.

3
ответ дан 23 November 2019 в 06:01
поделиться

View, Other Windows, Object Test Bench

Объектный тестовый стенд может использоваться для выполнения кода во время разработки.

Вы можете щелкнуть правой кнопкой мыши по типу в Class View , щелкните «Создать экземпляр» и выберите конструктор. Затем вы можете указать значения для его параметров, если они есть, и экземпляр отобразится в Object Test Bench.

Вы также можете вызвать статические методы, щелкнув тип правой кнопкой мыши и выбрав Invoke Static Method.

В диалоговом окне В Object Test Bench вы можете щелкнуть правой кнопкой мыши объект для вызова методов, а также навести на него курсор и увидеть его структуру (как при отладке). Вы также можете назначать эти переменные и взаимодействовать с ними в окне Immediate, также во время разработки.

Эта функция может быть полезна при написании библиотеки. Обратите внимание, что для этого необходимо сначала скомпилировать решение.

3
ответ дан 23 November 2019 в 06:01
поделиться

Отладчик .NET позволяет вам присваивать идентификаторы объектов и ссылаться на них через эти идентификаторы позже во время сеанса. Для этого щелкните правой кнопкой мыши переменную (или выражение), ссылающуюся на объект, в окне Autos / Locals / Watch или во всплывающей подсказке и выберите «Create Object ID». Идентификаторы представляют собой последовательные целые числа, начинающиеся с 1, с суффиксом «#» - например, 1 # будет первым идентификатором, который вы создаете.

После создания идентификатора, если объект связан с данный идентификатор отображается в скобках.

Вы можете использовать 1 # для ссылки на объект по идентификатору везде, где вы обычно можете использовать выражения - в окне наблюдения, в условиях условной точки останова и т. д. . Это'

6
ответ дан 23 November 2019 в 06:01
поделиться

Существование надстройки Resharper . Это делает работу с Visual Stupidio менее болезненной :)

На самом деле это не скрытая функция, но, тем не менее, ее стоит упомянуть, поскольку она содержит множество этих уловок и горячих клавиш.

3
ответ дан 23 November 2019 в 06:01
поделиться

Я не знаю, насколько это «скрыто», но некоторые новые люди могут не знать о конидитональных точках останова .

Задайте точку останова, затем щелкните ее правой кнопкой мыши и выберите Условие ], затем введите выражение вроде:

(b == 0)

И оно сработает, только если это правда. Очень полезно при попытке отладки определенного этапа цикла.

3
ответ дан 23 November 2019 в 06:01
поделиться

Dynamic XSLT Intellisense

Очень малоизвестный факт: Visual Studio 2008 поддерживает реальные XSLT intellisense - не статический XSLT схематический, но реальный динамический intellisense включает автозаполнение названий шаблонов, режимов, имена параметров / переменных, атрибут установить имена, префиксы пространства имен и т. д.

Для всех версий VS мне нравится

Ctrl + Shift + V

для копирования данных в цикле буфера обмена.

3
ответ дан 23 November 2019 в 06:01
поделиться

В окне просмотра вы можете просмотреть текущее исключение, даже если у вас нет переменной для его удержания, добавив наблюдение за $ exception

4
ответ дан 23 November 2019 в 06:01
поделиться

Я удивлен, что никто об этом еще не упомянул. Я считаю, что способность записывать и воспроизводить серию действий иногда очень и очень помогает. Например, если я применяю какое-то повторяющееся действие к нескольким строкам в текстовом файле.

Например,

Ctrl + Shift + R (начать запись макроса)

выполнить серию нажатий клавиш

Ctrl + Shift + R (остановить запись макроса)

позже ....

Ctrl + Shift + P (воспроизведение нажатий клавиш)

Этот подход идеально подходит для коротких одноразовых манипуляций. Если что-то более сложное или понадобится более одного раза, я напишу сценарий.

3
ответ дан 23 November 2019 в 06:01
поделиться

Псевдовариабры в отладчике: http://msdn.microsoft.com/en-us/library/ms164891.aspx

$ Исключение : избегает Необходимость дать ваши имена исключений (и вызвать переменную не ссылаться на предупреждения).

$ User : говорит вам, какой пользователь запущен приложение ... иногда полезно при попытке диагностики вопросов разрешений.

3
ответ дан 23 November 2019 в 06:01
поделиться

Я случайно обнаружил это только сейчас. Если вы находитесь в любом месте строки и нажимаете Ctrl + Enter, то вставляется новая строка над текущей строкой и перемещается туда курсор.

Также, если нажать Ctrl + Shift + Enter, то будет вставлена новая строка ниже текущей строки и перемещен курсор туда (аналогично End, Enter)

5
ответ дан 23 November 2019 в 06:01
поделиться

Закройте все документы, кроме того, над которым вы работаете, щелкнув правой кнопкой мыши на вкладке документа и выбрав "Закрыть все, кроме этого". Это можно сделать и во многих других IDE и браузерах. Не очень большая функция, но я обнаружил, что использую ее более 10 раз в день. Эта функция была скрыта от меня в течение многих лет. Я должен сделать из нее комбинацию клавиш :p

3
ответ дан 23 November 2019 в 06:01
поделиться

Ctrl + Delete удаляет все слово (вперед)

Ctrl + Backspace удаляет все слово (назад)

Следующее хорошо известно, но не ошибаюсь ли я, говоря, что оно еще не было перечислено?

Ctrl + Shift + Space внутри круглых скобок вызова метода дает вам информацию о параметрах.

7
ответ дан 23 November 2019 в 06:01
поделиться

Вы когда-нибудь хотели найти функцию в текущем просматриваемом файле, но в нем слишком много членов? Нужен фильтр? Тогда окно Navigate - это то, что вам нужно. Вы активируете его нажатием Ctrl-, (запятая).

4
ответ дан 23 November 2019 в 06:01
поделиться

Во время отладки выберите идентификатор или выражение и перетащите его в окно наблюдения.
Это лучше, чем писать его с нуля :)

5
ответ дан 23 November 2019 в 06:01
поделиться

Ctrl + Tab - переключение между открытыми вкладками / окнами в Visual Studio 2005 и 2008.

Что-то вроде Alt + Tab в Windows, вызывает маленькое окно только для в настоящее время открывают файлы VS.

Вот пример снимка экрана:

alt text http://lh3.ggpht.com/_FWrysR9YI18/TFOGxnX9ShI/AAAAAAAAAQI/a-ByCRMmrpw/ctrltab.gif

3
ответ дан 23 November 2019 в 06:01
поделиться