VB.Net访问级别

时间:2018-05-30 18:13:36

标签: vb.net access-levels

我目前正在开发一个VB.Net项目,并遇到了一些让我感到困惑的事情。所以我基本上有以下代码结构:

Public Class MainClass

    Private Class HiddenClass
    End Class

    Private Class ChildA
        Inherits From HiddenClass
    End Class

    Private Class ChildB
        Inherits From HiddenClass
    End Class

End Class

Public Class BuildingBlock

    Protected lbl As Label
    Protected btn As Button
    Protected main As New MainClass()

End Class

现在我将main设置为Protected时出错。具体来说,我得到的错误是:

'main' cannot expose type 'MainClass' outside the project through class 'BuildingBlock'

现在我用Google搜索了错误,发现解决方案是:

  

将变量,过程参数或函数返回的访问级别更改为至少与其数据类型的访问级别一样具有限制性。

所以,我把它改为Public,一切都很好。但是为了测试一下,我改为访问PrivateFriendProtected FriendProtected Friend仍然出现了我的预期错误,但PrivateFriend都没有,即使它们的访问级别与数据类型不同。

所以我想知道为什么我只会在将此对象列为Protected时出现此错误,而不是在任何其他访问级别。

0 个答案:

没有答案