Modificadores de acceso interno vs. acceso privado

¿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.

enter image description here

Referencia:

dotnetbull: qué es el modificador de acceso en c #

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