защищенный внутренний

Справочник по языку C# в MSDN определяет «защищенный внутренний» как «Доступ ограничен текущей сборкой или типами, полученными из содержащего класса». Но с семантической точки зрения «защищенный внутренний» звучит для меня как «и защищенный, и внутренний», что означает, что член будет доступен только для тех производных классов, которые находятся в одной сборке. Есть ли какой-либо модификатор доступа, который имеет такое же значение?


person Asegid Debebe    schedule 30.09.2012    source источник
comment
меня это тоже всегда беспокоило. Аналогичный вопрос: свойство по-прежнему доступно из другой сборки"> stackoverflow.com/questions/7000871/   -  person nawfal    schedule 19.05.2013


Ответы (2)


C# не имеет такого модификатора доступа.

Однако CLR поддерживает его, поскольку уровень доступа FamANDAssem (protected internal — это FamORAssem)

person SLaks    schedule 30.09.2012
comment
защищенный внутренний поддерживается в C#. Это защищенный частный доступ, доступный только в C++. защищенный внутренний - FamORAssem. защищенный частный — FamANDAssem. - person BlackWasp; 30.09.2012
comment
БлэкВасп прав. C# поддерживает защищенный внутренний код. См. msdn.microsoft.com/en-us/ библиотека/ms173121(v=vs.110).aspx. - person akton; 30.09.2012
comment
@BlackWasp: Это то, что я сказал. - person SLaks; 30.09.2012
comment
@BlackWasp: я думаю, вы неправильно понимаете вопрос ОП. - person SLaks; 30.09.2012
comment
Хороший вопрос, я перечитал и я идиот (не в первый раз, и я уверен, что не в последний раз) :) - person BlackWasp; 30.09.2012

Нет, такого модификатора нет. Internal должно быть достаточно, так как вы должны знать изнутри других типов в той же сборке, что разрешено вызывать, а что нет.

person Adam Robinson    schedule 30.09.2012
comment
Спасибо! но я пытаюсь понять, что невозможно определить член таким образом, чтобы он был доступен только для производных классов И в той же сборке. Несмотря на то, что я не могу сейчас придумать сценарий, в котором наличие такого модификатора доступа могло бы пригодиться, хорошо знать, что нет такого модификатора, который позволил бы программисту сказать, что этот член является «и защищенным, и внутренним». - person Asegid Debebe; 01.10.2012
comment
@adfs: возможность объявить метод как internal и protected была бы лучше, чем internal, только в сценарии, где метод должен принимать параметр типа вложенного класса protected, особенно если этот защищенный класс имеет члены внутренних типов. - person supercat; 07.05.2013