Estoy tratando de encontrar una referencia para la visibilidad predeterminada de varios aspectos de C #. Tipos de clase, campos, métodos, enumeraciones, etc.
¿Puede alguien proporcionar una lista de estos junto con su visibilidad predeterminada (es decir, sin modificador prefijado)?
Respuestas:
Toda la información que está buscando se puede encontrar aquí y aquí (gracias Reed Copsey ):
Desde el primer enlace:
...
...
...
Desde el segundo enlace:
Y para los tipos anidados:
fuente
Public
.Enum
los miembros también lo sonPublic
. Probablemente sea menos confuso usar solo un alcance explícito en su caso, ya que hay muchas posibilidades de que los desarrolladores de c # lo traduzcan o lean en algún momento. La generación de código en vb.net no hace esto por usted, desafortunadamente.De MSDN:
Tipos de alto nivel , que no están anidados en otros tipos, sólo pueden tener
internal
opublic
accesibilidad. La accesibilidad predeterminada para estos tipos esinternal
.Los tipos anidados , que son miembros de otros tipos, pueden tener accesibilidad declarada como se indica en la siguiente tabla.
Fuente: Niveles de accesibilidad (Referencia de C #) (Diciembre 6 º , 2017)
fuente
Por defecto, el modificador de acceso para una clase es
internal
. Eso significa que se puede acceder a una clase dentro del mismo ensamblado. Pero si queremos que se acceda a la clase desde otros ensamblados, entonces debe hacerse pública.fuente
[assembly:InternalsVisibleTo("Friend1b")]
Por defecto es
private
. A menos que estén anidados, las clases lo estáninternal
.fuente
enum members are private by default, so to use them outside the enum we should declare them as public
. ¿Puedes explicar por qué el libro contradice lo que dices? Gracias.