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的主要内容,如果未能解决你的问题,请参考以下文章

C# 和 VB.NET 的优缺点?

Friend 访问修饰符打算在哪里使用?

vb.net:接口中的多重继承

vs2008中vb.net怎么把声音文件一起打包

求大神指点vs2012里的vb.net 编写的windows 服务怎么启动呀

在VB.NET中(VS.net),怎样指定透明颜色,让图片透明。