我目前正在开发一个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
,一切都很好。但是为了测试一下,我改为访问Private
,Friend
和Protected Friend
。 Protected Friend
仍然出现了我的预期错误,但Private
和Friend
都没有,即使它们的访问级别与数据类型不同。
所以我想知道为什么我只会在将此对象列为Protected
时出现此错误,而不是在任何其他访问级别。