Los modificadores de acceso (también llamados reglas de alcance) determinan qué código puede acceder a un elemento, es decir, qué código tiene permiso para leerlo o escribirle. En versiones anteriores de Visual Basic, había tres tipos de clases. Estos se han llevado a .NET. En cada uno de estos, .NET permite el acceso solo al código:
VB.NET también ha agregado uno y medio nuevos.
La "mitad" se debe a que Protected Friend es una combinación de la nueva clase Protected y la antigua clase Friend..
Los modificadores Protected y Protected Friend son necesarios porque VB.NET implementa el último requisito de OOP que faltaba VB: Herencia.
Antes de VB.NET, los programadores de C ++ y Java despreciables y despectivos menospreciaban a VB porque, según ellos, "no estaba completamente orientado a objetos". ¿Por qué? Las versiones anteriores carecían de herencia. La herencia permite que los objetos compartan sus interfaces y / o implementación en una jerarquía. En otras palabras, la herencia hace posible que un objeto de software adopte todos los métodos y propiedades de otro.
Esto a menudo se llama la relación "es-a".
La idea es que los métodos y propiedades más generales y ampliamente utilizados se definen como clases "primarias" y se hacen más específicas en las clases "secundarias" (a menudo llamadas subclases). "Mamífero" es una descripción más general que "perro". Las ballenas son mamíferos.
El gran beneficio es que puede organizar su código para que solo tenga que escribir código que haga algo que muchos objetos tienen que hacer una vez en el padre. Todos los "empleados" deben tener asignado un "número de empleado". Un código más específico puede ser parte de las clases secundarias. Solo los empleados que trabajan en la oficina general deben tener asignada una llave de tarjeta de puerta de empleado.
Sin embargo, esta nueva capacidad de herencia requiere nuevas reglas. Si una nueva clase se basa en una antigua, Protegido es un modificador de acceso que refleja esa relación. Se puede acceder al código protegido solo desde la misma clase o desde una clase derivada de esta clase. No desea que las llaves de la tarjeta de la puerta del empleado se asignen a nadie excepto a los empleados.
Como se señaló, Amigo protegido es una combinación del acceso de Amigo y Protegido. Se puede acceder a los elementos de código desde clases derivadas o desde el mismo ensamblaje, o ambos. Protected Friend puede usarse para crear bibliotecas de clases ya que el código que accede a su código solo tiene que estar en el mismo ensamblado.
Pero Friend también tiene ese acceso, entonces, ¿por qué usaría Protected Friend? La razón es que Friend se puede usar en un archivo de origen, espacio de nombres, interfaz, módulo, clase o estructura. Pero Amigo protegido solo puede usarse en una Clase. Amigo protegido es lo que necesitas para crear tus propias bibliotecas de objetos. Friend es solo para situaciones de código difíciles donde realmente se requiere un acceso amplio al ensamblado.