[Закрываются] любимые сочетания клавиш Visual Studio

Что такое NullPointerException?

Хорошим местом для начала является JavaDocs . Они охватывают это:

Брошено, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  • Вызов метода экземпляра нулевого объекта.
  • Доступ или изменение поля нулевого объекта.
  • Выполнение длины null, как если бы это был массив.
  • Доступ или изменение слотов с нулевым значением, как если бы это был массив.
  • Бросать нуль, как если бы это было значение Throwable.

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

blockquote>

Также, если вы попытаетесь использовать нулевую ссылку с synchronized, который также выдаст это исключение, за JLS :

SynchronizedStatement:
    synchronized ( Expression ) Block
  • В противном случае, если значение выражения равно null, NullPointerException.
blockquote>

Как это исправить?

Итак, у вас есть NullPointerException. Как вы это исправите? Возьмем простой пример, который выдает NullPointerException:

public class Printer {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public void print() {
        printString(name);
    }

    private void printString(String s) {
        System.out.println(s + " (" + s.length() + ")");
    }

    public static void main(String[] args) {
        Printer printer = new Printer();
        printer.print();
    }
}

Идентифицирует нулевые значения

. Первый шаг - точно определить , значения которого вызывают исключение . Для этого нам нужно выполнить некоторую отладку. Важно научиться читать stacktrace . Это покажет вам, где было выбрано исключение:

Exception in thread "main" java.lang.NullPointerException
    at Printer.printString(Printer.java:13)
    at Printer.print(Printer.java:9)
    at Printer.main(Printer.java:19)

Здесь мы видим, что исключение выбрано в строке 13 (в методе printString). Посмотрите на строку и проверьте, какие значения равны нулю, добавив протоколирующие операторы или используя отладчик . Мы обнаруживаем, что s имеет значение null, а вызов метода length на него вызывает исключение. Мы видим, что программа перестает бросать исключение, когда s.length() удаляется из метода.

Трассировка, где эти значения взяты из

Затем проверьте, откуда это значение. Следуя вызовам метода, мы видим, что s передается с printString(name) в методе print(), а this.name - null.

Трассировка, где эти значения должны быть установлены

Где установлен this.name? В методе setName(String). С некоторой дополнительной отладкой мы видим, что этот метод вообще не вызывается. Если этот метод был вызван, обязательно проверьте порядок , что эти методы вызывают, а метод set не будет называться после методом печати. ​​

Этого достаточно, чтобы дать нам решение: добавить вызов printer.setName() перед вызовом printer.print().

Другие исправления

Переменная может иметь значение по умолчанию setName может помешать ему установить значение null):

private String name = "";

Либо метод print, либо printString может проверить значение null например:

printString((name == null) ? "" : name);

Или вы можете создать класс, чтобы name всегда имел ненулевое значение :

public class Printer {
    private final String name;

    public Printer(String name) {
        this.name = Objects.requireNonNull(name);
    }

    public void print() {
        printString(name);
    }

    private void printString(String s) {
        System.out.println(s + " (" + s.length() + ")");
    }

    public static void main(String[] args) {
        Printer printer = new Printer("123");
        printer.print();
    }
}

См. также:

Я все еще не могу найти проблему

Если вы попытались отладить проблему и до сих пор не имеете решения, вы можете отправить вопрос для получения дополнительной справки, но не забудьте включить то, что вы пробовали до сих пор. Как минимум, включите stacktrace в вопрос и отметьте важные номера строк в коде. Также попробуйте сначала упростить код (см. SSCCE ).

336
задан 5 revs, 5 users 60% 8 December 2013 в 19:31
поделиться

110 ответов

Ctrl + - и противоположное Ctrl + Сдвиг + - .

Кладут обратно курсор (или вперед) к последнему месту, которым это было. Больше прокрутки назад или PgUp / PgDown для обнаружения, где Вы были.

Это переключает открытые окна в Visual Studio:

Ctrl + вкладка и противоположное Ctrl + Сдвиг + вкладка

227
ответ дан 6 revs, 6 users 50% 23 November 2019 в 00:39
поделиться

Разверните Умный Тег (Меню Твердости): Ctrl + . (период)

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

98
ответ дан 3 revs 23 November 2019 в 00:39
поделиться

Возрастающий Поиск - Ctrl + я

Это - в основном диалоговое окно находки без диалогового окна. Только начните вводить то, что Вы хотите искать (посмотрите на нижнее местоположение строки состояния для наблюдения то, что Вы ввели). При нажатии Ctrl + я снова или F3 ищем следующий экземпляр. Нажмите Escape для выхода. При запуске нового поиска путем нажатия Ctrl + я дважды повторяю последний поиск.

124
ответ дан 4 revs, 4 users 57% 23 November 2019 в 00:39
поделиться

Для меня это не имеет отношения об автоматическом коде завершения, соответствие круглой скобке или показ некоторой необычной панели инструмента. Вместо этого это примерно разрешение мне видеть код.

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

В этом случается, Сдвиг + Высокий звук + Входят входит к спасению и получает окно кода в фокусе в полноэкранный режим. Поразите его снова, и у Вас есть все панели назад.

130
ответ дан 4 revs, 3 users 45% 23 November 2019 в 00:39
поделиться

Ctrl + Высокий звук + P -> Присоединение для обработки

11
ответ дан 3 revs, 2 users 50% 23 November 2019 в 00:39
поделиться

Если 'Фаворит' измеряется тем, как часто я использую его, то:

F10 : Отладка. StepOver

:)

12
ответ дан 2 revs, 2 users 89% 23 November 2019 в 00:39
поделиться

Ctrl + F10

, выполненный к курсору при отладке. Разыскиваемый это целую вечность, прежде чем я нашел сочетание клавиш...

13
ответ дан 3 revs, 2 users 60% 23 November 2019 в 00:39
поделиться

Тот, который должны поднять другие редакторы: Ctrl + C с ничто не выбрало , скопирует текущую строку.

Большинство других редакторов ничего не сделает. После копирования строки вставка поместит строку перед текущей, , даже если Вы будете посреди строки . Большинство других редакторов начнет вставлять от того, где Вы, который является почти никогда, что Вы хотите.

Дублирование строки справедливо: Держите Ctrl, нажмите c, тогда v. ( Ctrl + C , Ctrl + V )

18
ответ дан 2 revs, 2 users 67% 23 November 2019 в 00:39
поделиться

CTRL + F5 (Запускаются, Не Отлаживая)

CTRL + SHIFT + B (Решение для Сборки)

17
ответ дан 2 revs, 2 users 57% 23 November 2019 в 00:39
поделиться

Открытый и набор фокусируются в Проводник Решения : Ctrl + Высокий звук + L

19
ответ дан 3 revs, 3 users 57% 23 November 2019 в 00:39
поделиться

Ctrl + M , O . Может свернуть и развернуть все разделы кода в конкретном файле.

19
ответ дан 5 revs, 4 users 76% 23 November 2019 в 00:39
поделиться

Высокий звук + Сдвиг +arrow ключи (, , , )

Это позволяет Вам выбирать вещи в блоке. Как Вы мог выбрать весь "интервал" в блоке и затем искать и заменить для удвоения, например.

**int** x = 1;
**int** y = 2;
**int** z = 3;
22
ответ дан 2 revs, 2 users 82% 23 November 2019 в 00:39
поделиться

Visual Studio 2005/2008 плакаты привязки клавиш:

Они не покрывают настройки, но они - хорошие ссылочные материалы и определенно полезный для нахождения новых ярлыков.

кроме того, макрос, который выводит всю текущую привязку к файлу HTML:

http://www.codinghorror.com/blog/archives/000315.html

24
ответ дан 2 revs, 2 users 93% 23 November 2019 в 00:39
поделиться

Мой фаворит: F12 (переходят к определению) и Смещаются + F12 (найдите ссылки).

последний полезен с F8 (перейдите к следующему результату).

Ctrl + - и Ctrl + Сдвиг + - отображаются на спине моей мыши и вперед кнопках.

Ctrl + . полезен также, специально для добавления обработчиков событий и "использования" операторов.

24
ответ дан 4 revs, 2 users 64% 23 November 2019 в 00:39
поделиться

Смещаются + ESC

, Это скрывается/закрывает любое 'поддельное окно' окна в Visual Studio. Это включает вещи как Проводник Решения, Обозреватель объектов, Окно вывода, окно Immediate, Windows Модульного теста и т.д. и т.д. и все еще применяется, прикрепляются ли они, плавание, прикрепляемое или с вкладками.

Ярлык в окно (например, Ctrl + Высокий звук + L или Ctrl + Высокий звук + я ) делает то, что необходимо сделать, и Сдвиг + Esc для избавлений от него. Если Вы не избавляетесь от него, единственный способ дать его, фокус снова должен использовать то же сочетание клавиш (или мышь, которая является тем, чего мы стараемся избегать....)

, Как только Вы приобретаете навык его, это очень полезно.

<час>

Grrr.... Сумма времен хита Ctrl + F4 для закрытия 'окна' только, чтобы видеть, что мое текущее окно кода закрывается, был безумен, прежде чем я нашел это, теперь это только иногда происходит..

34
ответ дан 3 revs, 3 users 87% 23 November 2019 в 00:39
поделиться

Тот, который я часто использую, но не многие другие люди, делает:

Сдвиг + Высокий звук + F10 тогда Вводит

, Если Вы введете в имени класса как Collection<string> и не будете иметь надлежащего импорта пространства имен тогда, то эта комбинация ярлыка автоматически вставит импорт (в то время как каре сразу после'>').

Обновление:

эквивалентный ярлык от комментариев к этому ответу (спасибо астерит !):

Ctrl + .

, Намного более удобный, чем моя исходная рекомендация.

34
ответ дан 6 revs, 3 users 61% 23 November 2019 в 00:39
поделиться

Мне нравится Ctrl + M , Ctrl + M . Расшириться/свернуть текущий блок кода.

34
ответ дан 2 revs, 2 users 67% 23 November 2019 в 00:39
поделиться

Ctrl + Сдвиг + V вставляют / цикл через кольцо буфера обмена

40
ответ дан 2 revs, 2 users 67% 23 November 2019 в 00:39
поделиться

Ctrl + C , Ctrl + V для дублирования текущей строки

Ctrl + L для удаления текущей строки

Ctrl + F3 для поиска текущего выбора

Ctrl + K , Ctrl + K для создания закладки (которые полезны)

Ctrl + K , Ctrl + N для движения в следующую закладку

И, вот является чем-то еще более интересным:
Нажатие Ctrl + / для помещения курсора в поле, где можно ввести команды.

, Например, Нажимая Ctrl + / и тип">", теперь начинают вводить имя файла в Вашем проекте, и это автоматически заполнит. Это - очень быстрый способ открыть файлы в текущем решении.

43
ответ дан 4 revs, 4 users 64% 23 November 2019 в 00:39
поделиться

Ctrl + K , Ctrl + D //Авто (Ре) Формат

Видят Также: Ответ

47
ответ дан 4 revs, 2 users 89% 23 November 2019 в 00:39
поделиться

Ctrl + Пространство , Visual Studio дает возможные завершения.

51
ответ дан 3 revs, 3 users 40% 23 November 2019 в 00:39
поделиться

Ctrl + Сдвиг + F

, Старый добрый , Находят В Файлах .

60
ответ дан 3 revs, 3 users 67% 23 November 2019 в 00:39
поделиться

Ctrl + ] для соответствия фигурным скобкам и круглым скобкам.

Ctrl + Сдвиг + ] выбирает код между парными скобками.

61
ответ дан 3 revs, 3 users 40% 23 November 2019 в 00:39
поделиться

ВКЛАДКА ключ для "отрывков".

, Например, тип try и затем хит клавиша Tab дважды.

Результаты в:

try 
{           

}
catch (Exception)
{

    throw;
}

, который можно тогда развернуть.

Полный список Отрывков C#: http://msdn.microsoft.com/en-us/library/vstudio/z41h7fat.aspx

71
ответ дан 5 revs, 5 users 86% 23 November 2019 в 00:39
поделиться

Visual Studio запаса? F12 - Редактирование. GoToDefinition.

Наличие DevExpress Осуществляют рефакторинг! установленный означает, что Ctrl + ' является моим небывалым фаворитом, хотя;)

77
ответ дан 3 revs, 3 users 67% 23 November 2019 в 00:39
поделиться

Ctrl + K , Ctrl + C Комментарий блок

Ctrl + K , Ctrl + U Некомментарий блок

95
ответ дан 2 revs, 2 users 50%user18443 23 November 2019 в 00:39
поделиться

При использовании пара:

  • Ctrl + Введите : вставьте пустую строку над текущей строкой.
  • Ctrl + ] Shift + Введите : вставьте пустую строку под текущей строкой.
12
ответ дан 23 November 2019 в 00:39
поделиться

Вот список, который я часто использую:

Ctrl + I : для прогрессивного поиска. Если вы ничего не наберете после I и продолжите нажимать I (удерживая нажатой клавишу Ctrl ), он будет искать последний элемент, который вы искали. Ctrl + Shift + I обратный поиск. Вы также можете использовать F3 Shift + F3 ) после ввода некоторой строки поиска.

Ctrl + K Ctrl + C : Для комментирования выделенного региона. Если ничего не выделено, текущая строка будет прокомментирована. Естественно, вы можете просто удерживать Ctrl и последовательно нажимать K , C .

Ctrl + K Ctrl + U : для раскомментирования выделенной области. Работает, как указано выше.

Ctrl + / : переводит курсор в небольшое поле поиска вверху. Вы можете ввести "> имени файла" (без кавычек), чтобы открыть файл. Очень полезно, если ваш проект содержит несколько файлов.

Ctrl + K Ctrl + K : Помещает текущую строку в закладки. Это полезно, если вы хотите на мгновение взглянуть на какую-то другую часть кода и вернуться туда, где вы были.

Ctrl + K Ctrl + N : переход к следующей закладке, если их больше одной.

Ctrl + - : переводит курсор в его предыдущее положение

Ctrl + Shift + - : переводит курсор в его следующее положение ( если он существует)

Ctrl + Shift + B : создайте свой проект

Ctrl + C : Хотя это обычная копия, если ничего не выделено, копирует текущую строку. То же самое для Ctrl + X (для вырезания)

Ctrl + Пробел : автозаполнение с использованием IntelliSense

Ctrl + ]] : перенесет вас к соответствующей скобе. Работает со всеми видами скобок: '(', '{', ' ['. Полезно для больших блоков.

F12 : приведет вас к определению функции / определению переменной.

Alt + P + P : откроется вверх по свойствам проекта. Хотя не многие используют это, это полезно, если вы хотите быстро изменить аргументы командной строки для своей программы.

F5 : чтобы начать отладку

Shift + F5 : чтобы остановить отладку

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

это полезно, если вы хотите быстро изменить аргументы командной строки для своей программы.

F5 : чтобы начать отладку

Shift + F5 : чтобы остановить отладку

Пока отладки, вы можете использовать Ctrl + Alt + Q , чтобы добавить быстрое наблюдение. Другие ярлыки отладки можно найти в раскрывающемся меню отладки.

это полезно, если вы хотите быстро изменить аргументы командной строки для своей программы.

F5 : чтобы начать отладку

Shift + F5 : чтобы остановить отладку

Пока отладки, вы можете использовать Ctrl + Alt + Q , чтобы добавить быстрое наблюдение. Другие ярлыки отладки можно найти в раскрывающемся меню отладки.

14
ответ дан 23 November 2019 в 00:39
поделиться

Не видел этого ...

Ctrl + Вверх

Ctrl + Вниз

Прокрутка окна без перемещения курсора.

11
ответ дан 23 November 2019 в 00:39
поделиться

Избранное слово: Ctrl + W

я не могу жить без того ярлыка. Используемый более чем 100 + (или 200 +) день.

8
ответ дан dance2die 23 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: