Оператор присваивания в языке Visual Basic имеет вид переменная = выражение (три из четырех записанных нами в приложениях предыдущего урока операторов — операторы присваивания).
Данный оператор выполняется в следующем порядке: сначала вычисляется выражение справа, затем оно присваивается переменной слева, то есть после выполнения оператора переменная будет иметь значение, которое получилось при вычислении выражения в правой части.
Важно представлять себе, что оператор присваивания не представляет собой равенство в алгебраическом смысле! Левую и правую части оператора нельзя менять местами1. В языке Pascal запись оператора присваивания отличается от приведенной выше записи Visual Basic как раз тем, что вместо знака «=» (равно) там используется знак присваивания «:=» (который в том числе подчеркивает несимметричность оператора).
Отметим, что когда-то в Visual Basic полагалось писать ключевое слово Let перед оператором присваивания. Нельзя сказать, что в VB.NET об этом забыли: если попробовать вставить Let перед оператором присваивания, это не вызовет ошибку — просто это слово будет автоматически удалено. Порядок вычисления отдельных частей выражения, стоящих в правой части оператора присваивания, определяется старшинством используемых операций и расстановкой скобок (подробнее см. ниже раздел «Выражения»).
Например, в операторе присваивания Sq_root = (-b+sqrt(b*b-4*a*c))/(2*a)
сначала вычисляется выражение Ь*Ь-4*а*с, затем от него находится квадратный корень (sqrt) и т. д. Переменная, которая фигурирует в левой части оператора присваивания, может также входить и в выражение, стоящее в правой части данного оператора (и такое встречается довольно часто). Рассмотрим, например, фрагмент программы (многоточием обозначены несущественные для рассмотрения операторы): X = 1 'переменной X присваивается начальное значение X = Х+1 'значение переменной X увеличивается на единицу
Первый оператор присваивает переменной X значение 1, последний будет выполняться следующим образом: сначала будет вычислено выражение, стоящее справа (при текущем значении X, равном 1), и полученное значение, равное'2, присвоится той же переменной X (таким образом, значение переменной X увеличится на единицу).