以下内容无法编译:
MustInherit Class Foo
Friend Property objects As List(Of Object)
Get
Return _objects
End Get
Protected Set(value As List(Of Object))
_objects = value
End Set
End Property
Private Property _objects As New List(Of Object)
End Class
我收到错误消息:Access modifier 'Protected Friend' is not valid. The access modifier of 'Get' and 'Set' should be more restrictive than the property access level.
。嗯,它更具限制性。只有同一程序集中Foo
的子类才能设置此属性。
为什么不允许这样做?
答案 0 :(得分:2)
嗯,它更具限制性。只有同一程序集中的Foo子类才能设置此属性。
不,那不是真的。 Protected Friend
表示程序集中的任何人,以及从类(当前程序集之外)派生的任何人都可以调用该属性。也就是说,它是"或"操作,而不是"和"。 VB.Net没有"受保护和朋友"您正在寻找的访问说明符;只有"受保护或朋友"。