Поделиться через


Операторы присваивания

Обновлен: Ноябрь 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

Исполняемые операторы

Расширяющие и сужающие преобразования

Ссылки

Операторы присваивания