Duplicar posibles:
What is the difference between 'protected' and 'protected internal'?
What is the difference between Public, Private, Protected, and Nothing?Confusión: interno, protegido y protegido interna
Código es como se menciona a continuación:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace testanotherlib
{
public class A
{
internal void InternalDisplay()
{
Console.WriteLine("Internal Display Method.");
}
protected void ProtectedDisplay()
{
Console.WriteLine("Protected Display Method.");
}
protected internal void ProtectedInternalDisplay()
{
Console.WriteLine("ProtectedInternal Display Method.");
}
public void PublicDisplay()
{
Console.WriteLine("Public Display Method.");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace testanotherlib
{
public class B : A
{
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using testanotherlib;
namespace testlib
{
public class C:A
{
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using testlib;
using testanotherlib;
namespace testapp
{
class Program
{
static void Main(string[] args)
{
B objB = new B();
C objC = new C();
}
}
}
Estoy tratando de entender la diferencia entre en interno, protegido y protegido interno. Para eso he creado un ejemplo usando el código de arriba.
En un proyecto de biblioteca de clase testanotherlib tengo clase A & clase B. En un proyecto de biblioteca de clase testlib tengo clase C. La clase de programa está en una aplicación de consola separada. Dentro del método principal de la clase de programa, he creado un objeto para la clase B (objB) y la clase C (objC). Para objB y y objC, solo se puede acceder al método público de la clase A. Me esperaban para la clase B todos los métodos de la clase A serán accesibles. Amablemente ayúdame a entender esto. Si necesita cualquier otra información sobre el proyecto, siéntase libre de preguntarme.
Saludos, Priyank
Dónde estabas esperando para poder acceder a todos los métodos de la clase A, con una referencia a una clase A? Su código nunca intenta usar * los miembros, lo que hace que sea difícil hablar de ... –
@JonSkeet: esperaba poder acceder a todos los métodos de la clase A, con objB de referencia. –
@PriyankThakkar: ¿De 'testApp'? * ¿Por qué * estabas esperando eso? El código en 'testApp' no está en el mismo ensamblaje que' A', por lo que los miembros internos no son visibles, por ejemplo. –