Операторы присваивания
Обновлен: Ноябрь 2007
Операторы присваивания выполняют присваивание, сводящееся к вычислению значения справа от оператора присваивания (=) и его записи в элемент слева, как в следующем примере.
v = 42
В этом примере оператор присваивания сохраняет значение литерала 42 в переменной v.
Подходящие элементы программирования
Элемент программирования слева от оператора присваивания должен иметь возможность принимать и хранить значение. Это означает, что он должен быть переменной или свойством, не являющимся ReadOnly (Visual Basic), или же элементом массива. В контексте оператора присваивания такой элемент иногда называется lvalue ("левое значение").
Значение в правой части оператора присваивания формируется с помощью выражения, которое может содержать любую комбинацию литералов, констант, переменных, свойств, элементов массива и другие выражения или вызовы функций. Это демонстрируется в следующем примере.
x = y + z + findResult(3)
В этом примере осуществляется сложение значения переменной y со значением переменной z, а затем сложение со значением, возвращаемым функцией findResult. Общее значение этого выражения затем сохраняется в переменной x.
Типы данных в операторах присваивания
В дополнение к числовым значениям оператор присваивания также может присваивать значения типа String, как показано в следующем примере.
Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.
Можно также присваивать значения Boolean с помощью литерала Boolean или выражения Boolean, как показано в следующем примере.
Dim r, s, t As Boolean
r = True
s = 45 > 1003
t = 45 > 1003 Or 45 > 17
' The preceding statements assign False to s and True to t.
Аналогично, можно присваивать соответствующие значения элементам программирования типов Char, Date и Object. Можно также присвоить экземпляр объекта элементу класса, из которого этот экземпляр был создан.
Составные операторы присваивания
Составные операторы присваивания сначала выполняют операцию над выражением перед присваиванием его значения программному элементу. В следующем примере показан один из этих операторов, +=, который прибавляет значение переменной в левой части оператора к значению выражения справа:
n += 1
В предыдущем примере к значению n прибавляется 1, а затем новое значение записывается в n. Это краткий эквивалент следующего оператора:
n = n + 1
Многие составные операции присваивания выполняются с помощью операторов этого типа. Список этих операторов и дополнительные сведения о них см. в разделе Операторы присваивания.
Оператор объединения и присваивания (&=) удобен при добавлении строки в конец уже существующих строк, например:
Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".
Преобразование типов в операторах присваивания
Значение, присваиваемое переменной, свойству или элементу массива, должно иметь тип данных конечного элемента. В общем случае следует стремиться создавать значение того же типа данных, что и у конечного элемента. Тем не менее, во время присваивания некоторые типы могут быть преобразованы в другие.
Сведения о преобразовании типов данных см. в разделе Преобразование типов в Visual Basic. Говоря коротко, Visual Basic автоматически преобразует значение заданного типа к любому другому типу, до которого он может быть расширен. Расширяющее преобразование всегда успешно завершается во время выполнения и не приводит к потере данных. Например, Visual Basic при необходимости преобразует значение типа Integer к Double, поскольку Integer имеет меньшую разрядность, чем Double. Дополнительные сведения см. в разделе Расширяющие и сужающие преобразования.
Сужающие преобразования (не являющиеся расширяющими) выполняются с риском сбоя или потери данных во время выполнения. Явное сужающее преобразование можно выполнять с помощью функции преобразования типа; также можно указать компилятору выполнять все преобразования неявно, установив параметр Option Strict Off. Дополнительные сведения см. в разделе Явные и неявные преобразования.
См. также
Основные понятия
Операторы объявления в Visual Basic
Расширяющие и сужающие преобразования