Друг и Защищенный друг в VB.NET

Модификаторы доступа (также называемые правилами области видимости) определяют, какой код может обращаться к элементу, то есть какой код имеет разрешение на его чтение или запись. В предыдущих версиях Visual Basic существовало три типа классов. Они были перенесены в .NET. В каждом из них .NET разрешает доступ только к коду:

  • Частный - внутри одного и того же модуля, класса или структуры.
  • Друг - в рамках одной сборки.
  • Общедоступный - в любом месте того же проекта, из других проектов, которые ссылаются на проект, и из любой сборки, созданной из проекта. Другими словами, любой код, который может его найти.

VB.NET также добавил полтора новых.

  • защищенный
  • Защищенный друг

«Половина» заключается в том, что Protected Friend является комбинацией нового защищенного класса и старого класса Friend.

Модификаторы Protected and Protected Friend необходимы, потому что VB.NET реализует последнее требование ООП, которого не было в VB: наследование.

До VB.NET высокопарные и презрительные программисты на C ++ и Java принижали VB, потому что он, по их мнению, «не полностью объектно-ориентирован». Почему? Предыдущие версии не имели наследования. Наследование позволяет объектам совместно использовать свои интерфейсы и / или реализацию в иерархии. Другими словами, наследование делает возможным один программный объект, который принимает все методы и свойства другого.

instagram viewer

Это часто называют отношениями "есть".

  • Грузовой автомобиль "is-a".
  • Квадратная форма "есть".
  • Собака "есть" млекопитающее.

Идея состоит в том, что более общие и широко используемые методы и свойства определяются как «родительские» классы, и они становятся более конкретными в «дочерних» классах (часто называемых подклассами). «Млекопитающее» - это более общее описание, чем «собака». Киты - это млекопитающие.

Большим преимуществом является то, что вы можете организовать свой код, так что вам нужно только написать код, который выполняет то, что многие объекты должны делать один раз в родительском. Всем «сотрудникам» должен быть присвоен «номер сотрудника». Более конкретный код может быть частью дочерних классов. Только сотрудники, работающие в главном офисе, должны иметь назначенный им ключ от дверной карты сотрудника.

Однако эта новая возможность наследования требует новых правил. Если новый класс основан на старом, Protected является модификатором доступа, который отражает эти отношения. Доступ к защищенному коду возможен только из одного и того же класса или из класса, производного от этого класса. Вы не хотите, чтобы ключи от дверных карт служащих были назначены кому-либо, кроме служащих.

Как уже отмечалось, Защищенный друг - это комбинация доступа как друга, так и защищенного друга. Доступ к элементам кода возможен либо из производных классов, либо из одной и той же сборки или из обоих. Защищенный друг может использоваться для создания библиотек классов, поскольку код, который обращается к вашему коду, должен быть только в одной сборке.

Но у Friend также есть такой доступ, так зачем вам использовать Protected Friend? Причина в том, что Друг может быть использован в исходном файле, Пространство именИнтерфейс, Модуль, класс или структура. Но Защищенный друг может быть использован только в классе. Защищенный друг - это то, что вам нужно для создания ваших собственных библиотек объектов. Friend - только для сложных ситуаций кода, где действительно необходим широкий доступ к сборке.

instagram story viewer