Члены класса доступны только из методов того же класса - Как? - PullRequest
0 голосов
/ 25 ноября 2011

Я наткнулся на следующие два «странных» свойства:

Process.GetCurrentProcess().MainModule;

Assembly.GetExecutingAssembly().Location;

Эти свойства являются частью класса Процесс и Сборка , но свойства доступны только из методов внутри этих классов.

Ни Private, ни Protected не ограничивают использование свойств только методами из одного класса.

Как называется уровень защиты этих свойств или как это работает вообще?

Ответы [ 2 ]

3 голосов
/ 25 ноября 2011

Это то, что private делает

http://msdn.microsoft.com/en-us/library/ms173121(v=vs.80).aspx

"Наконец, член класса или структуры может быть объявлен как private с помощью ключевого слова private, указывающего, что только класс или структура, декларирующиечлен имеет доступ к этому участнику. "

2 голосов
/ 25 ноября 2011

GetExecutingAssembly - это статический метод, который возвращает тип процесса. С этим типом вы можете получить доступ к открытым свойствам, таким как MainModule, например:

new Process().MainModule

Итак, вы перепутали класс и объект этого класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...