Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятно о Visual Basic.NET. Самоучитель.Ч2.2005...docx
Скачиваний:
43
Добавлен:
25.11.2019
Размер:
4.02 Mб
Скачать
      1. Константы

Вспомним процедуру рисования дерева из 11.2.2.:

Sub Дерево()

Dim x As Single = 200

Dim y As Single = 100

Dim Ширина_кроны As Single = 20

Dim Высота_кроны As Single = 60

Dim Длина_ствола As Single = 15

Гр.FillEllipse(Brushes.Green, x, y, Ширина_кроны, Высота_кроны)

Гр.DrawEllipse(Pens.Black, x, y, Ширина_кроны, Высота_кроны)

Гр.DrawLine(Pens.Black, x + Ширина_кроны / 2, y + Высота_кроны, _

x + Ширина_кроны / 2, y + Высота_кроны + Длина_ствола)

End Sub

При помощи пяти переменных мы можем управлять положением, размерами и формой дерева. Предположим, приходит ваш начальник, смотрит на дерево и говорит: «Хорошее дерево, особенно мне нравится ширина кроны. Приказываю, чтобы отныне все деревья, нарисованные этой процедурой, имели только такую ширину кроны и никакую другую, несмотря на дальнейшее развитие и усложнение процедуры.»

Как надежно выполнить приказ начальника? Ширина кроны задается оператором

Dim Ширина_кроны As Single = 20

Если не трогать этот оператор, можно ли быть уверенным, что ширина кроны в будущем не изменится? Нельзя, так как в будущем мы можем по забывчивости дописать в процедуру операторы типа Ширина_кроны = . . . Как бороться с забывчивостью? VB предлагает средство – так называемые константы. Константа – это переменная, которой мы задаем значение при объявлении, и которая неспособна это значение в дальнейшем менять. Чтобы отличить константу от обычной переменной, в операторе объявления мы вместо Dim пишем Const:

Const Ширина_кроны As Single = 20

Отныне, если мы попытаемся дописать в процедуру операторы, имеющие возможность изменить значение константы, типа Ширина_кроны =… , VB выдаст сообщение об ошибке.

Таким образом, при помощи объявления констант мы повышаем надежность программирования.

Имейте в виду, что термином «константа» до последнего времени часто обозначали два близких понятия: с одной стороны собственно константы, а с другой стороны литералы. Я буду стараться избегать возможной путаницы и литералы буду называть литералами. Литералы мы уже проходили. Напомню, что литералами называются те конкретные значения величин, которые мы видим в программе. Например, во фрагменте

a = 1 + 0.25

b = "Амазонка"

Debug.WriteLine("Волга")

If a > 3 Then . . .

литералы это 1 0.25 "Амазонка" "Волга" 3.

Кроме упомянутых выше констант, которые вы создаете сами, существует еще большое число констант, определенных в библиотеке классов .NET Framework. Объявлять их не надо, ими можно сразу пользоваться, если знать их имена и смысл. Например, такими константами являются математические константы PI и E, входящие в класс Math. Каждая из таких констант имеет конкретное значение (например, PI = 3.14159265358979323846). Мы могли бы вместо слова PI просто писать конкретное число 3.14159265358979323846, но названия запоминаются легче и записываются короче, чем числа.