2012-09-30 37 views
12

La referencia del lenguaje C# en MSDN define 'protected internal' como "El acceso está limitado al ensamblado actual o los tipos derivados de la clase contenedora". Pero desde un punto de vista semántico, me suena 'protected internal' como 'protected and internal', lo que significa que el miembro será accesible solo para aquellas clases derivadas con el mismo ensamblado. ¿Hay algún modificador de acceso que tenga un significado para el mismo efecto?protected internal

+0

esto siempre me molestó demasiado .. Pregunta similar: http://stackoverflow.com/questions/7000871/internal-protected -property-still-accessible-from-a-different-assembly – nawfal

Respuesta

17

C# no tiene ningún modificador de acceso.

Sin embargo, el CLR lo soporta, como el nivel de acceso FamANDAssem (protected internal es FamORAssem)

+4

protegido interno es compatible con C#. Es privado protegido que solo está disponible en C++. protegido interno es FamORAssem. private protected es FamANDAssem. – BlackWasp

+0

BlackWasp es correcto. C# admite soporte interno protegido. Vea http://msdn.microsoft.com/en-us/library/ms173121(v=vs.110).aspx. – akton

+4

@BlackWasp: Eso es lo que dije. – SLaks

1

No, no hay tal modificador. Internal debería ser suficiente, ya que debería poder saber, desde otros tipos en el mismo conjunto, qué es legal llamar y qué no.

+0

Gracias! pero a lo que intento llegar es a que no es posible definir un miembro de tal manera que solo sea accesible para las clases derivadas Y dentro del mismo conjunto. Aunque ahora no puedo pensar en un escenario donde tener dicho modificador de acceso sería útil, es bueno saber que no existe tal modificador que permita al programador decir, este miembro está 'protegido e interno' – adfs

+2

@adfs: Ser capaz de declarar un método como 'interno' * y *' protected' sería mejor que 'internal' solo en el escenario donde el método debe tomar un parámetro de un tipo de clase anidado' protected', especialmente si ese protegido la clase tenía miembros de tipos internos. – supercat

Cuestiones relacionadas