Уровни доступа VB.Net - PullRequest
0 голосов
/ 30 мая 2018

Я сейчас работаю над проектом 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 FriendProtected Friend все еще была ошибка, как я и ожидал, но у Private и Friend ее не было, даже если они имеют разные уровни доступа, чем у типа данных.

Поэтому мне интересно, почему яполучит эту ошибку только для перечисления этого объекта как Protected, а не для любого другого уровня доступа.

...