Подтвердить что ты не робот

Что означает защищенный внутренний в .Net

Защищенные средства, мы можем получить доступ к этому члену только в классе-выводе, а внутренние средства мы можем получить доступ к этому члену в любом типе в той же сборке, используя объект. Поэтому я могу рассмотреть элемент Защищенный внутренний как открытый член в той же сборке. и как защищенный член в другой сборке.

EDIT:

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();
    }
}

}

См., что я могу получить доступ, защищенный внутренним в классе, не являющемся производным... так что он работает как открытый в той же сборке.. что вы говорите.

4b9b3361

Ответ 1

Это путаница.

protected означает "только этот класс и производные классы".

внутренний означает "только классы в этой сборке".

защищенный внутренний означает защищенный ИЛИ внутренний "(любой класс в той же сборке или любой производный класс, даже если он находится в другой сборке). p >

то есть. он не означает "protected AND internal" (только производные классы внутри одной сборки).

Ответ 2

Внутренний означает, что только классы внутри одной сборки могут получить доступ к этому члену

Защищенный означает, что к члену может быть доступ только тип вывода (дочерний класс, доступ к суперклассу).

Защищенный внутренний - это комбинация обоих из них. Доступ к нему можно получить только в одной сборке, и к нему можно получить доступ только как дочерний класс.

Проще говоря: "protected internal" означает "защищенный или внутренний" - это означает, что к нему можно получить доступ в пределах одной сборки или с помощью типа вывода.

Ответ 3

Защищенный внутренний означает, что только производные типы и типы в одной и той же сборке могут получить доступ к элементу. Это странно, но это союзные отношения. Смысл, к члену можно обращаться все, что может получить доступ к элементам, помеченным как внутреннее ИЛИ защищено.

Ответ 4

Не совсем. Ключевое слово Protected в объявлении объявляет, что к элементам можно получить доступ только из одного класса или из класса, полученного из этого класса. Таким образом, вы можете получить к нему доступ из одной и той же библиотеки, но не из всех классов.

И вы не можете получить доступ к Protected Internal из любой другой библиотеки, потому что Internal означает доступ только с той же сборки.