Basic-инстинкты

Избегайте ошибок с исправлением ошибок

Дастин Кэмпбелл (Dustin Campbell)

Частично эта статья основана на предварительной версии XML (веб-службы). В любую содержащуюся в ней информацию могут быть внесены изменения

Содержание

Представляем исправления ошибок
Применение исправления ошибок с помощью клавиатуры
Исправление недопустимый код
С помощью правой преобразования типов
Исправление ошибок проверки
Импорт пространства имен
Создание нового типы и члены
Заключение

Одной из наиболее полезных возможностей Microsoft XML (веб-службы) редактирования в Microsoft Visual Studio является фоновой компиляции. Вы вероятно, уже знакомы с этой функции, как аналогичны в духе проверки орфографии и грамматики в Microsoft Word. При вводе кода, XML (веб-службы) компилятор работает в фоновом режиме. При вводе ошибку подчеркиванием squiggle в редакторе и добавляемый окне списка ошибок.

До XML (веб-службы), только руководства для главным образом от ошибки Устранение ошибок Получено сообщений сами. Если возможно, компилятор XML (веб-службы) создает сообщения об ошибках, предназначены для объяснения не только что такое сообщение об ошибке, но также как ее исправить.

Рассмотрим пример. Предположим, что следующие XML (веб-службы) кода:

Module Module1
  Sub Main()
    Dim i As Integer = "1"c
  End Sub
End Module

Поскольку не ясно, ожидается какой преобразование из Char Integer приведенный выше код порождает ошибку компилятора. Должен компилятор вставить преобразования для получения ASCII-значение "1" c, или следует вставить преобразование, выполняющее численное значение "1" c? Компилятор не имеет параметра, но чтобы создать это сообщение об ошибке:

'' char'значения невозможно преобразовать "Integer". Используйте "Microsoft.VisualBasic.AscW"интерпретировать знак как значение Юникода или "Microsoft.VisualBasic.Val"для интерпретации его как цифры."

Хотя выше сообщение об ошибке становится равным большой длины объяснить, как можно устранить проблему, необходимо более кодирования с вашей стороны фактически исправления.

Представляем исправления ошибок

Для облегчения fixing ошибки появилась ИНТЕРФЕЙСА исправления ошибок. В XML (веб-службы) и 2008 при ошибку типизирован в редакторе, Небольшая полоса, красный добавляется squiggle подчеркивание, указывающее, смарт-тег доступен в этом месте, как показано в на рис. 1.

fig01.gif

Рисунок 1 ошибка Squiggle с индикатор смарт-тег

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

fig02.gif

Свернуть на рис. 2 смарт-тег

рис. 3 щелкнув смарт-тег расширяет исправление ошибок пользовательского ИНТЕРФЕЙСА с параметрами, доступными для определенного кода ошибки.

fig03.gif

Расширенная смарт-тега с доступные исправления ошибок на рис. 3

Исправление ошибок ИНТЕРФЕЙСА упрощает устранение ошибок, быстро и точно. Предварительный просмотр окон наглядно показывает, что изменения будут внесены в коде, и именно простой вопрос выбора либо две гиперссылки, чтобы применить исправление.

Иногда определенный компилятора является исправить в некоторых случаях, но не все. В этих случаях doubtful IDE XML (веб-службы) optimistically создаст индикатор смарт-тега для этой ошибки, в основном для повышения производительности. Это гораздо быстрее создать индикатор смарт-тега для ошибок, которые могут быть исправлены некоторые времени, чем для флажок каждой ошибки, чтобы определить, если он определенно можно исправить до создания индикатора. При наведении на индикатор смарт-тег, не содержит исправления ошибок, можно увидеть "не коррекции предложения"сообщение, показанный на рис. 4.

fig04.gif

Рисунок 4не варианты исправления

Применение исправления ошибок с помощью клавиатуры

Исправления ошибок может быть применен с помощью клавиатуры, а также мыши. Если курсор редактора находится на squiggle ошибки с индикатором смарт-тегов, можно нажать SHIFT + ALT + F10 для немедленно разверните смарт-тега и показать ошибку параметров исправления. С развернутым смарт-тега клавиши СТРЕЛКА ВВЕРХ и стрелка вниз будет перейдите параметры и исправления ошибок можно применить, нажав клавишу ВВОД. Если dislike SHIFT + ALT + F10 сочетания клавиш, CTRL +. также будут отображаться смарт-тега. (Лично найти CTRL +. гораздо проще запомнить и нажмите клавишу!)

Исправление недопустимый код

Часто, код будет содержать ошибку просто так как он имеет Недопустимая структура. Один распространенные ошибки заключается в написании кода, имеющего непарные скобки. Можно выявить ошибки в коде ниже?

Module Module1
  Sub Main()
    Dim quad = Function(a, b, c) _
                 Function(x) (a * x * x) + (b * x) + c

    Dim f = quad(1.0, -79.0, 1601.0)

    Console.Write(f(42.0)
  End Sub
End Module

Когда код не компилируется так как он является недопустимым (например, отсутствуют скобки в вызове Console.Write выше), IDE XML (веб-службы) предложит исправления ошибки, действительны, если применяются в коде. Исправление ошибок рис. 5, предлагает вставки отсутствует круглая скобка.

fig05.gif

Рисунок 5 исправление ошибок для вставки круглая скобка

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

Class Person
  Private _name As String

  Public ReadOnly Property Name() As String
    Get
      Return _name
    End Get
  End Property
End Class

Чтобы добавить setter в приведенном выше коде, как

  1. Переместите курсор редактора после End Get.
  2. Нажмите клавишу ВВОД.
  3. Задать тип.
  4. Снова нажмите клавишу ВВОД.

Будет оставить недопустимый следующий код:

Class Person
  Private _name As String

  Public ReadOnly Property Name() As String
    Get
      Return _name
    End Get
    Set(ByVal value As String)

    End Set
  End Property
End Class

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

  1. Нажмите кнопку вверх, чтобы переместить курсор редактора ошибка squiggle.
  2. Нажмите CTRL +. Чтобы отобразить исправления ошибки предложение, показанный на рис. 6.
  3. Нажмите кнопку вниз для фокус первого исправления ошибок.
  4. Чтобы применить нажмите клавишу ВВОД.

fig06.gif

Рисунок 6 исправления ошибок для свойства только для чтения с помощью Setter

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

С помощью правой преобразования типов

По умолчанию XML (веб-службы) оставляет строгой ввода отключение. Это позволяет воспользоваться преимуществами XML (веб-службы) компилятором поддержку неявных данных введите преобразования и позднее связывание:

Module Module1
  Sub Main()
    Dim s As String = 42
  End Sub
End Module

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

Однако, если использовать строгую типизацию, XML (веб-службы) будут доступны для помогут вам вставить же преобразования типов, компилятор будет, если строгой типизации были отключение исправления ошибок. Figure 7 shows the error correction for the code above when strict typing is enabled.

fig07.gif

Рисунок 7 исправление ошибок для преобразовывать целочисленные строки

Исправление ошибок проверки

Иногда ошибка кода может быть просто орфографические ошибки. Ошибок орфографии в имена типов XML (веб-службы) предоставит исправления ошибок, предложить существующие типы с одинаковыми именами. Рассмотрим следующий код, содержащий орфографические ошибки:

Class Class1
End Class

Class Class2
End Class

Module Module1
  Sub Main()
    Dim c As New Clss
  End Sub
End Module

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

fig08.gif

Рисунок 8 исправление ошибок для орфографические ошибки

В настоящее время проверки орфографии довольно прост и работает только для имен типов. Однако это область, XML (веб-службы) группы хотел бы улучшить в будущем выпуске.

Импорт пространства имен

После доставки XML (веб-службы), рабочей группы Visual Basic получил несколько запросов для исправления об ошибках. Руководитель среди них было исправление ошибок для автоматического добавления инструкции Imports. Он может быть достаточно раздражительным для запуска с использованием типа и понимать забыли для импорта пространства имен. Предположим, что при использовании класса System.IO.File открыть и прочитать файл с диска:

Module Module1
  Sub Main()
    Dim fileName = Path.Combine("C:\Temp", "Sizes.txt")
    Using f = File.OpenRead(fileName)

    End Using
  End Sub
End Module

Если пространство имен System.IO еще не импортированы еще этого кода приводит к ошибке. В XML (веб-службы), существует два возможных ошибок исправления этой ошибки:

  1. Импорт пространства имен.
  2. Уточните ссылку.

Это показано на рис. 9. Выбрав первого исправления ошибок предлагаемые мы можно легко импортировать пространство имен System.IO.

fig09.gif

Рисунок 9 исправление ошибок для добавления инструкции Imports

Это вызывает вопрос: что делать, если импорт пространства имен изменит значение кода? Предположим, что приведенный выше код будет использоваться Framework Windows Presentation (WPF) для создания System.Windows.Shapes.Rectangle, используя данные, прочитать из файла Sizes.txt. Со ссылками WPF добавлен начните с создания нового прямоугольника:

Imports System.IO

Module Module1
  Sub Main()
    Dim fileName = Path.Combine("C:\Temp", "Sizes.txt")
    Using f = File.OpenRead(fileName)
      Dim r As New Rectangle
    End Using
  End Sub
End Module

Как и прежде еще не было импортировано пространство имен еще, поэтому использовать исправление ошибок ИНТЕРФЕЙСА показанной в в рис.10 для импорта для вас. Однако на этот раз есть проблема. System.Windows.Shapes пространство имен также содержит тип с именем Path, поэтому импорт пространства имен изменит значение в коде.

fig10.gif

Рисунок 10 исправления ошибок для импорта System.Windows.Shapes

К счастью логику избежать этих ситуаций встроена исправление ошибок для добавления инструкции Imports. Исправление ошибок распознает проблемы и отображает диалоговое окно Ошибка проверки добавления импорта, показанной на рис. 11.

fig11.gif

Рисунок 11 диалогового окна Ошибка проверки импорта добавить

Это диалоговое окно предоставляет два варианта за настройкой исправление ошибок, поэтому не изменено значение кода:

  1. System.Windows.Shapes"импорта"и уточнить затронутые идентификаторы.
  2. Не импортировать "System.Windows.Shapes", но изменить "Прямоугольник"для "Windows.Shapes.Rectangle".

Путем выбора первый параметр оператора Imports добавляется для System.Windows.Shapes и ссылка на пути является полное имя:

Imports System.IO
Imports System.Windows.Shapes

Module Module1
  Sub Main()
    Dim fileName = System.IO.Path.Combine("C:\Temp", "Sizes.txt")
    Using f = File.OpenRead(fileName)
      Dim r As New Rectangle
    End Using
  End Sub
End Module

Опять же, данное исправление ошибки доступно только в XML (веб-службы) 2008. При использовании XML (веб-службы) 2005, вы не увидите предложения для добавления инструкции Imports.

Создание нового типы и члены

XML (веб-службы) еще не выполнено с помощью исправления ошибки! Visual Studio 2010 представлю новую функцию вызвать создание из использование позволяет легко создавать новые типы и члены. Для Visual Basic эта функция реализуется как набор исправления ошибок, чтобы доступ к их через существующие исправления ошибок. Во многих случаях создание из исправления ошибки использования предлагают предложения ошибки компилятора, который ранее имел нет. Например рассмотрим обратно рис. 4. В XML (веб-службы), что код не имеет доступных исправления ошибки. Но в XML (веб-службы) 2010, новый создание от использования, предлагаемые исправления ошибок. На рис. 12 показывает разницу в исправления ошибки между XML (веб-службы) 2008 и XML (веб-службы) 2010 один и тот же код.

fig12.gif

На рис. 12 создать класс

Выбрав первого предложения в новый файл создается новый класс с именем Customer. Теперь продолжить написать код, который использует элементы класса Customer и заглушки недостаточно элементов для, с помощью исправления ошибок. Например рис. 13 показано исправления ошибки после присваивания значения члену класса, который еще не был объявлен.

fig13.gif

Рисунок 13 создать свойство или поле

После выбора первого предложения, созданный класс Customer выглядит так:

Class Customer
  Property Name As String
End Class

В XML (веб-службы) 2010, можно будет использовать создание из использование исправления ошибок для максимальной эффективности.

Заключение

Исправление ошибок — важнейшая функция в написании кода для Visual Basic. Не только делать они помогают немедленно выявить и исправить ошибки, но их можно использовать для написания кода более эффективно. В этой статье излагаются только поверхности сотни варианты, предлагаемые XML (веб-службы). С XML (веб-службы) 2010, имеется исправление ошибок для большинство ошибок кодирования.

Не забудьте использовать CTRL +.!

Вопросы и комментарии направляйте по адресу instinct@microsoft.com.

Dustin Кэмпбелл — Microsoft XML (веб-службы) IDE руководитель группы языков Microsoft Visual Studio. Он работает главным образом на редактор и отладчик функций продукта. Он как программирования гайка языка также влияет на другие языки Visual Studio, таких как C# и F #. Перед присоединением к Microsoft Dustin помогла разработать CodeRush наград и оптимизация! средства в Developer Express Inc. Избранные цвет Dustin становится синей.