VB.NET 视觉继承:Friend VS Protected
Posted
技术标签:
【中文标题】VB.NET 视觉继承:Friend VS Protected【英文标题】:VB.NET Visual Inheritance: Friend VS Protected 【发布时间】:2011-03-05 13:05:53 【问题描述】:如果使用访问修饰符 Friend 声明某些组件/控件与使用 Protected 声明时,为什么某些组件/控件不会在子窗体中以可视方式继承。
例如,我的父表单中有一个最初是“朋友”的 DataSet 对象(我将它拖放到表单中,因此它在设计器视图中显示为控件),但我注意到我的子窗体没有按预期继承控件。一旦我将其更改为“受保护”,它就会按预期显示在我的子表单中。
我知道 Protected 允许子窗体修改继承的控件,但这与我上面描述的问题有什么关系呢?
【问题讨论】:
我不知道问题的答案,但是(如果您还不知道)如果您希望它既是朋友又在继承的控件中可见,您可以可能将其设为Protected Friend
以获得两个访问修饰符的效果。
谢谢,我知道。我真的不需要它成为类型朋友,受保护的实际上是我正在寻找的访问权限,我只是不明白为什么它会以这种方式工作。
【参考方案1】:
这取决于声明基本形式的程序集。如果这是 另一个 程序集,而不是派生形式所在的程序集,则 Friend 无法工作。声明为 Friend 的成员只能在同一个程序集中访问。
Protected 是这里正确的访问修饰符。它确保在什么程序集中声明派生形式并不重要。并确保只有派生的表单类才能访问数据集。
【讨论】:
以上是关于VB.NET 视觉继承:Friend VS Protected的主要内容,如果未能解决你的问题,请参考以下文章