c# - oriented - Qué significa Protected Internal en.Net
oop c# (4)
Es confuso.
protected significa "solo esta clase y clases derivadas".
interno significa "solo clases en esta asamblea".
protegido interno significa " protegido O interno " (cualquier clase en el mismo conjunto, o cualquier clase derivada, incluso si está en un ensamblaje diferente ).
es decir, no significa "interno protegido AND" (solo clases derivadas dentro del mismo conjunto).
Esta pregunta ya tiene una respuesta aquí:
Medios protegidos, podemos acceder a este miembro solo en una clase derivada, e interna significa que podemos acceder a este miembro en cualquier tipo en el mismo ensamblaje usando un objeto. Entonces, ¿puedo considerar a un miembro interno protegido como miembro público en la misma asamblea? y como un miembro protegido en el ensamble diferente .
EDITAR:
namespace pracConsole
{
class Class1
{
protected internal int val;
public int hello()
{
Console.WriteLine("This is method pracConsole.hello");
Console.ReadLine();
return 1;
}
}
class program
{
static void Main(string[] args)
{
Class1 _class1 = new Class1();
_class1.val = 3;
_class1.hello();
Console.ReadLine();
}
}
}
Vea que puedo acceder, protegido interno en una clase no derivada ... por lo tanto, funciona como público en la misma asamblea ... ¿qué dice usted?
Interno significa que solo las clases dentro del mismo ensamblado pueden acceder a ese miembro
Protegido significa que solo se puede acceder al miembro por un tipo de derivación (clase secundaria que accede a una superclase).
El interno protegido es una combinación de ambos. Solo se puede acceder al mismo ensamblado y solo se puede acceder a él como clase secundaria.
Más simplemente: ''interno protegido'' significa ''protegido o interno'' - esto significa que se puede acceder dentro del mismo conjunto o por un tipo derivado.
La protección interna significa que solo los tipos y tipos derivados en el mismo ensamblaje pueden acceder al miembro. Es extraño, pero es una relación sindical. Es decir, se puede acceder al miembro mediante cualquier elemento que pueda acceder a los miembros marcados como O interno o protegido.
Realmente no. La palabra clave Protected en la declaración declara que solo se puede acceder a los elementos desde dentro de la misma clase, o desde una clase derivada de esta clase. Entonces puedes acceder desde la misma biblioteca pero no desde todas las clases.
Y no puede acceder a Protected Internal desde ninguna otra biblioteca porque Internal significa acceder solo desde el mismo ensamblado.