Возможный дубликат:
В чем разница между 'protected' и 'protected internal'? В чем разница между Public, Private, Protected и Nothing?
Код указан ниже:
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();
}
}
}
Я пытаюсь понять разницу между Internal, Protected и Protected Internal. Для этого я создал пример, используя приведенный выше код.
В проекте библиотеки классов testanotherlib у меня есть класс A и класс B. В проекте библиотеки классов testlib у меня есть класс C. Класс программы находится в отдельном консольном приложении. Внутри основного метода класса Program я создал объект для класса B (objB) и класса C (objC). Для objB и и objC доступен только общедоступный метод класса A. Я ожидал, что для класса B будут доступны все методы класса A. Пожалуйста, помогите мне понять это. Если вам нужна какая-либо другая информация о проекте, не стесняйтесь спрашивать меня.
С уважением, Priyank