Визуальное наследование VB.NET: друг против защищен - PullRequest
1 голос
/ 18 июня 2010

Почему некоторые компоненты / элементы управления не будут наследоваться визуально в дочерней форме, если они объявлены с модификатором доступа Friend vs, когда они объявлены с помощью Protected.

Например, у меня есть объект DataSet в моей родительской форме, который изначально был «Друг» (я перетащил его в форму, поэтому он был показан как элемент управления в представлении конструктора), ноЯ заметил, что моя дочерняя форма не наследовала элемент управления, как ожидалось.Как только я изменил его на «Защищенный», он отобразился в моей дочерней форме, как и ожидалось.

Я знаю, что Защищенный позволяет дочерней форме изменять унаследованный элемент управления, но как именно это связано с проблемойЯ описал выше?

1 Ответ

1 голос
/ 18 июня 2010

Зависит от сборки, в которой объявлена ​​базовая форма. Если это другая сборка, чем та, в которой живет производная форма, то Friend не сможет работать. Члены, объявленные друзьями, доступны только внутри одной сборки.

Защищенный является правильным модификатором доступа здесь. Это гарантирует, что не имеет значения, в какой сборке объявлена ​​производная форма. И обеспечивает доступ к набору данных только для классов производных форм.

...