c#

Visibilidad predeterminada para clases C#y miembros(campos, métodos, etc.)?



(4)

Por defecto es private . A menos que estén anidados, las clases son internal .

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)?


Por defecto, el modificador de acceso para una clase es internal . Eso significa que se puede acceder a una clase dentro de la misma asamblea. Pero si queremos que se acceda a la clase desde otras asambleas, entonces debe hacerse pública.


Toda la información que está buscando se puede encontrar here y here (gracias a Reed Copsey ):

Desde el primer enlace:

Las clases y las estructuras que se declaran directamente dentro de un espacio de nombres (en otras palabras, que no están anidadas dentro de otras clases o estructuras) pueden ser públicas o internas. Internal es el valor predeterminado si no se especifica ningún modificador de acceso .

...

El nivel de acceso para los miembros de la clase y los miembros de la estructura , incluidas las clases y estructuras anidadas, es privado por defecto .

...

interfaces predeterminadas para el acceso interno .

...

Los delegados se comportan como clases y estructuras. Por defecto, tienen acceso interno cuando se declaran directamente dentro de un espacio de nombres, y acceso privado cuando están anidados .

Desde el segundo enlace:

Los tipos de nivel superior , que no están anidados en otros tipos, solo pueden tener acceso interno o público. La accesibilidad predeterminada para estos tipos es interna .

Y para tipos anidados:

Members of Default member accessibility ---------- ---------------------------- enum public class private interface public struct private


Desde MSDN:

Los tipos de nivel superior , que no están anidados en otros tipos, solo pueden tener acceso internal o public . La accesibilidad predeterminada para estos tipos es internal .

Los tipos anidados , que son miembros de otros tipos, pueden tener accesibilidades declaradas como se indica en la siguiente tabla.

Fuente: Niveles de Accesibilidad (Referencia de C #) (6 de diciembre de 2017)