Справочник по языку C# в MSDN определяет «защищенный внутренний» как «Доступ ограничен текущей сборкой или типами, полученными из содержащего класса». Но с семантической точки зрения «защищенный внутренний» звучит для меня как «и защищенный, и внутренний», что означает, что член будет доступен только для тех производных классов, которые находятся в одной сборке. Есть ли какой-либо модификатор доступа, который имеет такое же значение?
защищенный внутренний
comment
меня это тоже всегда беспокоило. Аналогичный вопрос: свойство по-прежнему доступно из другой сборки"> stackoverflow.com/questions/7000871/
- person nawfal   schedule 19.05.2013
Ответы (2)
C# не имеет такого модификатора доступа.
Однако CLR поддерживает его, поскольку уровень доступа FamANDAssem (protected internal
— это FamORAssem)
person
SLaks
schedule
30.09.2012
защищенный внутренний поддерживается в C#. Это защищенный частный доступ, доступный только в C++. защищенный внутренний - FamORAssem. защищенный частный — FamANDAssem.
- person BlackWasp; 30.09.2012
БлэкВасп прав. C# поддерживает защищенный внутренний код. См. msdn.microsoft.com/en-us/ библиотека/ms173121(v=vs.110).aspx.
- person akton; 30.09.2012
@BlackWasp: Это то, что я сказал.
- person SLaks; 30.09.2012
@BlackWasp: я думаю, вы неправильно понимаете вопрос ОП.
- person SLaks; 30.09.2012
Хороший вопрос, я перечитал и я идиот (не в первый раз, и я уверен, что не в последний раз) :)
- person BlackWasp; 30.09.2012
Нет, такого модификатора нет. Internal
должно быть достаточно, так как вы должны знать изнутри других типов в той же сборке, что разрешено вызывать, а что нет.
person
Adam Robinson
schedule
30.09.2012
Спасибо! но я пытаюсь понять, что невозможно определить член таким образом, чтобы он был доступен только для производных классов И в той же сборке. Несмотря на то, что я не могу сейчас придумать сценарий, в котором наличие такого модификатора доступа могло бы пригодиться, хорошо знать, что нет такого модификатора, который позволил бы программисту сказать, что этот член является «и защищенным, и внутренним».
- person Asegid Debebe; 01.10.2012
@adfs: возможность объявить метод как
internal
и protected
была бы лучше, чем internal
, только в сценарии, где метод должен принимать параметр типа вложенного класса protected
, особенно если этот защищенный класс имеет члены внутренних типов.
- person supercat; 07.05.2013