Interna y Privada de los Modificadores de Acceso


¿Cuál es la diferencia entre los modificadores de acceso internal y private en C#?

Author: Jim Fell, 2010-09-28

6 answers

Interno es para el ámbito de ensamblaje (es decir, solo accesible desde el código en el mismo .exe or .dll)

Private es para el ámbito de clase (es decir, accesible solo desde el código de la misma clase).

 457
Author: explorer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-16 06:50:17

Encuentre una explicación a continuación. Puedes consultar este enlace para más detalles - http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html

Private: - Los miembros privados solo son accesibles dentro del tipo propio (Clase Propia).

Internal: - Los miembros internos son accesibles solo dentro del ensamblado por herencia (su tipo derivado) o por instancia de clase.

introduzca la descripción de la imagen aquí

Referencia :

Dotnetbull - ¿qué es el modificador de acceso en c #

 180
Author: Vivek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-30 17:57:51

internal los miembros son visibles para todos los códigos de la asamblea en la que se declaran.
(Y a otras asambleas referenciadas usando el [InternalsVisibleTo] atributo )

private los miembros son visibles solo para la clase declarante. (incluidas las clases anidadas)

Por (esperemos) razones obvias, una clase externa (no anidada) no puede ser declarada private.

Para responder a la pregunta que olvidó hacer, protected los miembros son como private miembros, pero también son visibles en todas las clases que heredan el tipo de declaración. (Pero solo en una expresión de al menos el tipo de la clase actual)

 64
Author: SLaks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-28 14:06:06

Private - encapsulations in class/scope/struct ect'.

Interno - encapsulación en ensamblajes.

 7
Author: Yaniv Lugassy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-25 08:16:56

Los miembros privados son accesibles solo dentro del cuerpo de la clase o la estructura en la que se declaran.

Los tipos o miembros internos solo son accesibles dentro de los archivos del mismo ensamblado

 6
Author: Jesper Fyhr Knudsen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-28 13:58:18

Internal le permitirá hacer referencia, por ejemplo, a una clase estática de Acceso a datos (para la seguridad del hilo) entre varias clases de lógica de negocio, sin suscribirlas para heredar esa clase/viaje entre sí en los grupos de conexiones, y para evitar en última instancia permitir que una clase DAL promueva el acceso a nivel público. Esto tiene innumerables apoyos en diseño y mejores prácticas.

Entity Framework hace buen uso de este tipo de acceso

 3
Author: Nathan Teague,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-29 15:23:28