¿Cuál es la diferencia entre los modificadores de acceso internal
y private
en C #?
internal es para el scope del ensamblado (es decir, solo accesible desde el código en el mismo .exe o .dll)
privado es para el scope de la clase (es decir, accesible solo desde el código en la misma clase).
Encuentre una explicación a continuación. Puede consultar este enlace para obtener más información: http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html
Privado: – Los miembros privados solo son accesibles dentro del tipo propio (Clase propia).
Interno: – Los miembros internos solo son accesibles dentro del ensamblado por herencia (su tipo derivado) o por instancia de clase.
Referencia:
internal
miembros internal
son visibles para todos los códigos en el ensamblado en el que están declarados.
(Y a otros ensamblados a los que se hace referencia mediante el atributo [InternalsVisibleTo]
)
private
miembros private
son visibles solo para la clase declarante. (incluidas las clases anidadas)
Por (con suerte) obvias razones, una clase externa (no anidada) no se puede declarar private
.
Para responder a la pregunta que olvidó hacer, protected
miembros protected
son como miembros private
, pero también son visibles en todas las clases que heredan el tipo de statement. (Pero solo en una expresión de al menos el tipo de la clase actual)
private – encapsulations en class / scope / struct ect ‘.
interno – encapsulado en conjuntos.
Los miembros privados solo son accesibles dentro del cuerpo de la clase o la estructura en la que están declarados.
Los tipos o miembros internos solo son accesibles dentro de archivos en el mismo ensamblaje
Internal le permitirá hacer referencia, por ejemplo, a una clase estática de acceso a datos (para seguridad de subprocesos) entre múltiples clases de lógica de negocios, sin suscribirlas para heredar esa clase / viaje sobre otras en grupos de conexiones y, en última instancia, evitar permitir una clase DAL promover el acceso a nivel público. Esto tiene innumerables respaldos en diseño y mejores prácticas.
Entity Framework hace un buen uso de este tipo de acceso