2010-03-03 2 views
0

Я не могу понять, почему Control.CreateChildControls видна в классе кода для веб-страницы. А именно, Control.CreateChildControls определяется как protected internal, что означает, что этот метод доступен только для производных классов, расположенных внутри той же сборки, что и класс Control. Итак, как это возможно, поскольку, насколько мне известно, класс веб-страницы не компилируется в ту же сборку, что и класс Control (System.Web.dll)?Поскольку Control.CreateChildControls помечен как защищенный внутренний, он не должен быть видимым внутри

Thanx

ответ

2

К сожалению, формулировка 'защищенный внутренний' вводит в заблуждение. Это означает «защищенный» или «внутренний», а не «защищенный» и «внутренний».

В ваших% программных файлах% \ microsoft visual studio 9.0 \ vC# \ Specifications \ 1033 у вас есть справочное руководство по C#, это в разделе 1.6.2.

Поэтому производный класс может использовать его.

+0

поблагодарить вас за вашу помощь – AspOnMyNet

1

Класс Page наследует от Control, которые находятся как в пространстве имен System.Web.UI, так и в сборке System.Web.

2

Мне очень бесполезно охарактеризовать разницу между «защищенным и внутренним» и «защищенным или внутренним». Что является «защищенным внутренним»?

Вы могли бы сказать, «защищенная внутренняя наименее ограничительное сочетание защищенного и внутренних, поэтому это означает« защищенный и внутренние».

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

Yuck.

Лучший способ думать о нем:

  • доступность по умолчанию члена является «частным» - самым маленьким доменом доступности
  • модификатор расширяет область доступности члена
  • поэтому защищенный внутренний расширяет область доступности дважды, один раз до производных членов и один раз для членов сборки.

Для более мысли об этом см:

http://blogs.msdn.com/ericlippert/archive/2008/04/24/why-can-t-i-access-a-protected-member-from-a-derived-class-part-three.aspx

Смежные вопросы