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




Области видимости - часть 3


Неограниченная область видимости. Модификатор Public делает элемент неограниченно видимым. Часто такие элементы называют глобальными.

Видимость по умолчанию. Если вы совсем уберете модификатор доступа к классам, структурам и модулям:

    Class Класс1

    End Class

они по умолчанию будут иметь доступ Friend.

Если вы совсем уберете модификатор доступа к процедуре или функции:

        Sub П4()

        End Sub

она по умолчанию будет иметь доступ Public.

Птичка в клетке. Имейте в виду, что элементу с неограниченной областью видимости не гарантирована эта неограниченная видимость, если он объявлен внутри элемента с ограниченной видимостью. Рассмотрим пример:

Public Class Form1

    Inherits System.Windows.Forms.Form

Windows Form Designer generated code

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

        Класс.Структура.П4()

    End Sub

End Class

Public Class Класс

    Public Structure Структура

        Dim a As Integer

        Public Shared Sub П4()

            Debug.WriteLine("Сработала процедура П4 структуры Структура  класса Класс")

        End Sub

    End Structure

End Class

Здесь процедура П4 имеет неограниченную область видимости. Но стоит нам в строке

    Public Structure Структура

заменить Public на Private – и эта процедура вместе со всей структурой и ее компонентами станет недоступной из класса Form1. (На слово Shared пока не обращайте внимания.)

Область видимости – классы-наследники. Есть еще одна область видимости, которая не совпадает ни с одной из упомянутых и имеет отношение к наследованию классов. К ней относятся модификаторы Protected и Protected Friend. О Protected вы узнаете в 22.7.




Содержание  Назад  Вперед