Уровни доступа VB.Net
В настоящее время я работаю над проектом 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
и не на любом другом уровне доступа.