⇒ Библиотека книг по компьютерным технологиям
⇒ ⇒ Разработка Windows-приложений на Microsoft Visual Basic .NET и Microsoft Visual C# .NET. Учебный курс MCAD/MCSD
⇒ ⇒ ⇒ Глава 1. Введение в .NET Framework
⇒ ⇒ ⇒ ⇒ Занятие 5. Область видимости и уровни доступа
Читать далее: Модификаторы доступа к типам
У членов типа также могут быть модификаторы, управляющие их областью видимости. Эти модификаторы перечислены в таблице 1-2.
Таблица 1-2. Модификаторы и задаваемые ими уровни доступа
Модификатор |
Уровень доступа к членам |
|
Члены доступны из любого места приложения. |
|
Доступны только членам этого же типа (в котором определен данный член). |
|
Доступны из любого типа данной сборки, но не из внешних сборок. |
|
Доступны только членам этого же типа и типов, производных от него. |
|
Доступны любым типам данной сборки, а также типам, производным от типа, которому принадлежит данный член; является гибридом |
Любой член, объявленный с модификатором Public
(public
), видим для любого кода, расположенного за пределами класса, и является открытым. Открытые поля и методы могут быть вызваны другими объектами. Напротив, методы с модификатором Private
(private
) видимы только внутри типа, в котором они объявлены, их нельзя вызвать извне. Третий модификатор, Friend
(internal
), указывает, что данный член доступен типам, объявленным внутри этой сборки. Однако для типов, расположенных вне сборки, доступ к этому типу запрещен. Модификатор Protected
(protected
) разрешает доступ к члену из типа, к которому данный член принадлежит, а также из любых типов, производных от него. По правилам доступа модификатор Protected Friend
(protected internal
) представляет собой гибрид соответствующих модификаторов.
При объявлении членов-переменных модификатор доступа может заменять оператор Dim
. Если используется оператор Dim
(в Visual Basic .NET) либо модификатор доступа не указан (в Visual C#), считается, что для переменных классов Visual Basic .NET и Visual C# задан модификатор private
, для переменных структур Visual Basic .NET — модификатор Public
, а для переменных структур Visual C# — private
. Можно не указывать модификатор доступа при объявлении метода, при этом считается, что для методов классов и структур Visual C# задан модификатор private
, а для методов классов и структур Visual Basic .NET — Public
.
Примечание. Детально наследование обсуждается в главе 4.
Следующий пример иллюстрирует применение модификаторов доступа и их действие:
Visual Basic .NET
Public Class aClass ' Это поле доступно любому внешнему коду. Public anInteger As Integer ' Этот метод могут вызвать только члены данного ' класса или данной сборки, внешнему коду он недоступен. Friend Sub myMethod() End Sub ' Это поле доступно только членам данного класса. Private aString As String ' Этот метод могут вызвать только члены данного класса и ' классов, производных от него. Protected Function Return1() As Integer Return 1 End Function ' Это поле доступно членам любых типов из данной сборки, ' а также типов, производных от данного класса. Protected Friend aLong As Long End Class
Visual C#
public class aClass { // Это поле доступно любому внешнему коду. public int anInteger; // Этот метод могут вызвать только члены данного // класса или данной сборки, внешнему коду он недоступен. internal void myMethod() { } // Это поле доступно лишь членам данного класса. private string aString; // Этот метод могут вызвать только члены данного класса и // классов, производных от него. protected int Return1() { return 1; } // Это поле доступно членам любых типов из данной сборки, // а также типов, производных от данного класса. protected internal long aLong; }
Все книги представлены на сайте исключительно для ознакомления с содержанием. |