所以,我们有一个公共界面,如:
Public Interface PublicInterface
Sub DoStuff()
End Interface
具有实现公共接口的内部可见性的类:
Friend Class InternalClass
Implements PublicInterface
Friend Sub DoStuff() Implements PublicInterface.DoStuff
'Why is this allowed? This is accessible to "public" clients!
End Sub
End Class
我想我很困惑,因为界面的全部意义是能够与它接口......就像这样:
Public Class AClassInAssembly
Public Shared Function GetPublicInterface() As PublicInterface
Return New InternalClass()
End Function
End Sub
所以你可以这样称呼它:
Public Class AClassOutsideAssembly
Sub Main()
AClassInAssembly.GetPublicInterface().DoStuff()
End Sub
End Class
TLDR版本:为什么可以在接口的方法上更改访问修饰符?我不希望任何人认为他们突然限制访问那种基本上是公开的方法,无论该类是否。
您可以将设置更改为不允许此操作吗?