Специальные символы в коде
Обновлен: Ноябрь 2007
Иногда необходимо использовать в коде специальные знаки, т.е. знаки, не являющиеся алфавитными или числовыми. Набор знаков пунктуации и специальных знаков в Visual Basic имеет различное применение, от организации текста программы, до определения задач, выполняемых компилятором или скомпилированной программой. Эти знаки не определяют операции, подлежащие выполнению.
Круглые скобки
Используйте круглые скобки при определении процедуры, например, Sub или Function. В круглые скобки следует заключать все аргументы процедуры. Также стоит использовать круглые скобки для разделения переменных или аргументов на логические группы, особенно в случае необходимости переопределения по умолчанию в сложном выражении порядка приоритетов операторов. Это показано в приведенном ниже примере.
Dim a, b, c, d, e As Double
a = 3.2
b = 7.6
c = 2
d = b + c / a
e = (b + c) / a
После выполнения этого кода d имеет значение 8.225, а значение e равно 3. Расчет d использует приоритет по умолчанию: / перед +, и эквивалентен d = b + (c / a). Круглые скобки в вычислении e переопределяют приоритеты по умолчанию.
Разделители
Разделители выполняют как раз ту функцию, которую предполагает их название: они разделяют сегменты кода. В Visual Basic знак разделителя — это двоеточие (:). Разделители используются, если требуется использовать несколько операторов в одной строке. Это экономит место и повышает удобочитаемость кода. В следующем примере показаны три оператора, разделенных двоеточием.
a = 3.2 : b = 7.6 : c = 2
Сцепление
Оператор & используется для сцепления (объединения строк вместе). Не следует путать его с оператором +, который применяется для сложения числовых значений. Если для сцепления при работе с числовыми значениями используется оператор +, то можно получить неверные результаты. Это показано в приведенном ниже примере.
var1 = "10.01"
var2 = 11
resultA = var1 + var2
resultB = var1 & var2
После выполнения этого кода resultA имеет значение 21.01, а resultB — "10.0111".
Операторы для доступа к членам
Для доступа к члену какого-либо типа используются оператор "точка" (.) или оператор "восклицательный знак" (!), помещаемые между именем типа и именем члена.
Точка (.) Оператор
Оператор . используется для доступа к члену класса, структуры, интерфейса или перечисления. Членом может быть поле, свойство, событие или метод. Это показано в приведенном ниже примере.
Dim nextForm As New System.Windows.Forms.Form
' Access Text member (property) of Form class (on nextForm object).
nextForm.Text = "This is the next form"
' Access Close member (method) on nextForm.
nextForm.Close()
Оператор "восклицательный знак" (!)
Оператор ! используется только в классах и интерфейсах как оператор словарного доступа. При этом класс или интерфейс должны иметь свойство по умолчанию, которое принимает единственный аргумент типа String (строковый). Идентификатор, следующий сразу за оператором !, становится значением аргумента, передаваемого свойству по умолчанию в виде строки. Это показано в приведенном ниже примере.
Public Class hasDefault
Default Public ReadOnly Property index(ByVal s As String) As Integer
Get
Return 32768 + AscW(s)
End Get
End Property
End Class
Public Class testHasDefault
Public Sub compareAccess()
Dim hD As hasDefault = New hasDefault()
MsgBox("Traditional access returns " & hD.index("X") & vbCrLf & _
"Default property access returns " & hD("X") & vbCrLf & _
"Dictionary access returns " & hD!X)
End Sub
End Class
Три строки вывода в MsgBox покажут значение 32856. В первой строке используется традиционный доступ к свойству index, вторая использует тот факт, что index — это свойство по умолчанию класса hasDefault, а третья использует словарный доступ к классу.
Обратите внимание, что второй операнд оператора ! должен быть допустимым идентификатором Visual Basic, не заключенным в двойные кавычки (" "). Другими словами, нельзя использовать строковый литерал или строковую переменную. Следующее изменение в последней строке вызова MsgBox приводит к ошибке, так как "X" — строковый литерал, заключенный в кавычки.
"Dictionary access returns " & hD!"X")
Примечание. |
---|
Ссылки на коллекции по умолчанию должны быть явными. В частности, оператор ! не может использоваться для переменной с поздней привязкой. |
Знак ! также используется для знакового типа Single.