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

В определениях членов позволяется управлять уровнем доступа к ним. Видимость члена определяется уровнем доступа, указанным в его определении, а также уровнем доступа содержащего его типа, если таковой имеется. Для указания уровня доступа используется модификатор доступа:

Модификатор доступа Описание Элементы, которые можно объявить с данным модификатором Контекст объявления, в котором можно использовать модификатор
Public Открытый уровень доступа. Доступ к члену не ограничен.

классы, интерфейсы, перечисления, структуры, делегаты

константы, переменные, процедуры и функции, свойства, события

класс, пространство имен, структура
Private Закрытый уровень доступа. Доступ к члену ограничен только классом, содержащим данный член.

константы, переменные, процедуры и функции, свойства, события

класс, структура
Protected Родовой уровень доступа. Доступ к члену ограничен классом, в котором он определён, а также классами, производными от него.

константы, переменные, процедуры и функции, свойства, события

класс
Friend Сборочный уровень доступа. Доступ к члену ограничен сборкой (программой), в которой он определён.

классы, интерфейсы, перечисления, структуры, делегаты, события

константы, переменные, процедуры и функции, свойства

класс, пространство имен, структура
Protected Friend Сборочный родовой уровень доступа. Доступ к члену ограничен либо текущей сборкой, либо классами, производными от класса, содержащего данный член или при соблюдении каждого из условий.

константы, переменные, процедуры и функции, свойства, события

класс

В зависимости от контекста, в котором производится определение члена, возможно использование только некоторых модификаторов доступа. В случае, если определение члена не содержит модификатора доступа, его видимость определяется уровнем доступа по умолчанию.

Ограничения, связанные с видимостью членов

Определенные конструкции в языке требуют, чтобы тип имел уровень доступа не ниже чем член или другой тип.

Определены следующие ограничения:

См. также:

Руководство по языку Fore.NET