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

       

Затенение


Переменные и другие программные элементы разных модулей или разных процедур вполне могут иметь одинаковые имена. Спрашивается, как VB определяет, какой из видимых одноименных элементов имеется в виду в каждом конкретном случае? Здесь вступает в действие эффект

затенения: из нескольких одноименных элементов всегда имеется в виду более локальный, то есть тот, чья зона видимости меньше. Это значит, что локальные элементы имеют предпочтение перед модульными, а те – перед глобальными. В этом есть глубокий смысл. Программист, объявляющий элемент в своей процедуре, может не заботиться о том, что где-то в модуле есть элементы с тем же именем. А программист, объявляющий элементы в своем модуле, может не заботиться о том, что элементы с тем же именем есть где-то в проекте.

Посмотрим, к примеру, что напечатает следующий проект:

Форма 1:

    Public A = 10

    Public B = 20

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim A = 100

        Debug.WriteLine(A)

        Debug.WriteLine(B)

        Debug.WriteLine(C)

    End Sub

Модуль:

Module Module1

    Public A = 1

    Public B = 2

    Public C = 3

End Module

Вот что:

100

20

3



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