我目前正在做一个 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'
现在我用谷歌搜索了这个错误,发现解决方案是:
将变量、过程参数或函数返回的访问级别更改为至少与其数据类型的访问级别一样具有限制性。
所以,我把它改成了Public
,一切都很好。但只是为了测试,我改为访问Private
,Friend
和Protected Friend
. Protected Friend
仍然有我所期望的错误,但两者都Private
没有Friend
,即使它们的访问级别与数据类型的访问级别不同。
所以我想知道为什么我只会将此对象列为Protected
,而不是在任何其他访问级别时才会收到此错误。