Переопределяемые и переопределенные методы должны иметь одинаковую доступность, так почему же это не верно для Page.CreateChildControls ()? - PullRequest
1 голос
/ 04 марта 2010

Методы, помеченные как virtual, могут быть переопределены в производных классах. Одним из ограничений является то, что переопределяемые и переопределенные методы должны иметь одинаковую доступность. Таким образом, если виртуальный метод помечен как protected internal, то переопределяющий метод также должен быть помечен как protected internal (например, он не может быть помечен как просто protected).

Поскольку Page переопределяет класс Control.CreateChildControls(), который помечен как protected internal, тогда Page.CreateChildControls() также должен быть помечен как protected internal, но вместо этого помечен как protected. Как это возможно?

Ответы [ 2 ]

2 голосов
/ 04 марта 2010

Возможно, я не правильно понял ваш вопрос. Это то, что я нашел в MSDN для Control.CreateChildControls

protected internal virtual void CreateChildControls()
1 голос
/ 04 марта 2010

Может быть, вы искали этот неправильный пример на MSDN:

protected override void CreateChildControls()
{               
   // Creates a new ControlCollection. 
   this.CreateControlCollection();

   // Create child controls.
    ChildControl firstControl = new ChildControl();
   firstControl.Message = "FirstChildControl";

   ChildControl secondControl = new ChildControl();
   secondControl.Message = "SecondChildControl";

   Controls.Add(firstControl);
   Controls.Add(secondControl);

   // Prevent child controls from being created again.
   ChildControlsCreated = true;
}

Источник: http://msdn.microsoft.com/en-us/library/system.web.ui.control.createcontrolcollection.aspx

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