ПОНЯТНО О Visual Basic NET (том 2)

Константы


Вспомним процедуру рисования дерева из 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,  но названия запоминаются легче и записываются короче, чем числа.



Содержание раздела