Другое событие 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));
}
Сделайте выбор с нажатым ALT - выбирает квадрат текста вместо целых строк.
Ctrl-Minus, Ctrl-Plus, перешел назад и вперед где Вы недавно были (только открытые файлы, хотя).
Я не уверен, "скрыто" ли это, но не многие люди знают об этом - псевдорегистры . Прибывает очень удобный при отладке, у меня есть @ERR, час в моем окне часов все время.
Автосинхронизировать текущий файл с Проводником Решения. Не должны смотреть, где жизни файла в структуре проекта
Инструменты-> Опции-> Проекты и Решения-> "Отслеживают Активный Объект в Проводнике Решения"
Редактирование: , Если это становится слишком раздражающим для Вас тогда, можно использовать Dan Vanderboom макрос для вызова этой функции по требованию посредством нажатия клавиши.
(Примечание: Взятый из комментария ниже Jerry).
Схема Документа в FormsDesigner ( CTRL + ALT + T)
Быстрое переименование управления, упорядочивание и больше!
При разработке C++ Ctrl-F7 компилирует текущий файл только.
Много людей не знает или использует отладчик для, он является самым полным - Т.Е. просто используйте его для остановки кода, но щелчка правой кнопкой по красному кругу и существует намного больше опций, таких как повреждение при условии, выполненный код повреждения.
Также можно изменить значения переменных во времени выполнения с помощью отладчика, который является замечательной особенностью - сохраняет повторно выполняющийся код для фиксации глупой логической ошибки и т.д.
Обнаруженный сегодня:
Ctrl + .
Поднимает контекстное меню для рефакторинга (тогда один, это доступно через подчеркнутую последнюю букву класса/метода/свойства, который Вы только что переименовали - мышь для меню или "Ctrl" +".")
Пользовательский IntelliSense раскрывает высоту , например, отображая 50 объектов вместо значения по умолчанию, которое является IMO, смехотворно маленьким (8).
(Чтобы сделать это, просто измените размеры в выпадающий следующий раз, когда Вы видите его, и Visual Studio будет помнить размер, который Вы выбрали в следующий раз, когда это открывает выпадающее.)
Sara Ford загнали этот рынок в угол.
http://blogs.msdn.com/saraford/default.aspx
[еще 1113] подсказки по Visual Studio и приемы, чем Вы могут встряхнуть палку в.
Некоторые другие:
T4 (текстовый Шаблонный Инструментарий Преобразования) . T4 является генератором кода, встроенным прямо в Visual Studio
Ctrl-F10: выполненный к курсору во время отладки. Взял меня возрасты для нахождения этого, и я использую все это время;
Ctrl-E, Ctrl-D: примените форматирование стандарта (который можно определить).
функция клавиши TAB .
, Если Вы знаете имя ключа отрывка, запишите и нажмите двойную Вкладку. например: Запишите
foreach
и затем нажмите клавишу Tab дважды к [1 116]
foreach (object var in collection_to_loop)
{
}
2. Если Вы пишете какое-либо событие, запишите здесь
Button btn = new Button();
btn.Click +=
и затем нажмите клавишу Tab дважды к [1 118]
private void Form1_Load(object sender, EventArgs e)
{
Button btn = new Button();
btn.Click += new EventHandler(btn_Click);
}
void btn_Click(object sender, EventArgs e)
{
throw new Exception("The method or operation is not implemented.");
}
, функция btn_Click пишет автоматически
MouseLeftButtonDown
затем вкладка
MouseLeftButtonDown=""
щелчка затем нажимают вкладку снова MouseLeftButtonDown="Button_MouseLeftButtonDown"
в секции кода Button_MouseLeftButtonDown
созданный метод.
не Может жить без него!:)
Мешать отладчику ступить в тривиальные функции.
, Когда you’re, ступающий через код в отладчик, можно провести много времени, вступив и из функций you’re не особенно заинтересованный с именами, такими как GetID (), или станд.:: vector<> (), для выбора примера C++. Можно использовать реестр, чтобы заставить отладчик проигнорировать их.
Для Visual Studio 2005, необходимо перейти к HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio \8.0\NativeDE\StepOver и добавить строковые значения, содержащие регулярные выражения для каждой функции или набора функций, которые Вы хотите исключить; например,
станд.:: вектор.*::.*
TextBox:: GetID
можно также переопределить их для отдельных исключений. Например, предположите, что Вы действительно хотели ступить в вектор class’s деструктор:
станд.:: вектор.*:: \~.* =StepInto
можно найти детали для других версий Visual Studio в http://blogs.msdn.com/andypennell/archive/2004/02/06/69004.aspx
Можно использовать следующие коды в окне часов.
@err - display last error
@err,hr - display last error as an HRESULT
@exception - display current exception
Возрастающий поиск: В то время как наличие исходного документа открывает хит (CTRL + I) и вводит слово, Вы ищете Вас, может совершить нападки (CTRL + I) снова, чтобы видеть, что слова соответствуют Вашему входу.
Сколько раз Вы отлаживаете массив в quickwatch или окне часов и только имеете шоу Visual Studio Вы первый элемент? Добавьте", N" до конца определения, чтобы заставить студию показать Вам следующие объекты N также. IE "это-> m_myArray" становится "этим-> m_array, 5".
CTRL-K, CTRL-D
Переформатировали Документ!
Это является объектом привязок клавиш VB, не уверенных в C#
Sara Ford покрывает много прекрасных подсказок: http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx
, Но некоторые мои фавориты являются Фрагменты кода, Ctrl + . для добавления using
< Пространство имен> или генерирует тупик метода. Я не могу жить без этого.
Выезд большой список в плакате Привязки клавиш C# Visual Studio 2008 года: http://www.microsoft.com/downloadS/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=en
CTRL+SHIFT+V циклически повторится через Ваш буфер обмена, Visual Studio сохраняет историю копий.
Нажмите идентификатор (имя класса, переменная, и т.д.) тогда, F12 хита для "Переходит К Определению". Я всегда поражаюсь, сколько людей я смотрю, код использовать медленнее щелкают правой кнопкой->, "Переходят К Определению" метод.
РЕДАКТИРОВАНИЕ: Тогда можно использовать Ctrl + - для перехода назад туда, где Вы были.
Можно перетащить код в ToolBox. Попробуйте его!
CTRL + Сдвиг + U-> Верхний регистр выделил раздел. CTRL + U-> Нижний регистр выделенный раздел Great для получения моих SQL-операторов, выглядящих просто правильными при помещении их в строковые запросы.
Также полезный для кода Вы нашли онлайн, где ВСЕ НАХОДИТСЯ В ЗАГЛАВНЫХ БУКВАХ.
Для отображения любого блока данных как n-байт "массив" используйте следующий синтаксис в окне QuickWatch Visual Studio:
variable, n
, Например, для просмотра переменной, названной foo
как 256 массивов байтов, вводят следующее выражение в окно QuickWatch:
foo, 256
Это особенно полезно при просмотре строк, которые не завершаются пустым указателем или данные, это только доступно через указатель. Можно использовать Окно памяти Visual Studio для достижения подобного результата, но использование окна QuickWatch часто более удобно для быстрой проверки.
Точки трассировки!
Помещенный точка останова на строку кода. Поднимите Окно Точек останова и щелчок правой кнопкой по новой точке останова. Выберите, 'Когда Поражено...'. Путем отметки Visual Studio флажка 'Print a message' распечатает сообщение к Выводу Отладки каждый раз, когда строка кода выполняется, а не (или а также) повреждающийся на нем. Можно также заставить его выполнять макрос, поскольку это передает строку.
Транспонирование строки, Shift-Alt-T
Меняет местами две строки (текущую и следующую) и перемещает курсор на следующую строку. Я люблю это. Я даже написал макрос, который снова изменил положение на одну строку, выполнил транспонирование строки и снова изменил положение строки, так что все выглядело так, как будто я меняю местами текущую строку на предыдущую (Обратное транспонирование строки).
Транспонирование слова, Shift-Ctrl- Т
Я не использую его часто, но мне очень нравится:
ctrl-alt + mouse select
Для выделения в прямоугольном блоке, чтобы «заблокировать» границы.
Как отмечено в комментариях,
alt + mouse select
Делает только простой прямоугольный блок.
Вот кое-что, что я узнал (для C #):
Вы можете переместить курсор на открывающую фигурную скобку из закрывающей фигурной скобки, нажав Control +].
Я узнал об этом на тема SO, которая является обманом этой:
Средняя кнопка мыши Щелчок по вкладке редактора закрывает вкладку.