2

我最近一直在阅读 VB.Net 中的访问修饰符,有一些我无法真正理解的内容: a Class(or Module) 中的元素如何继承其封闭块的修饰符?

例如,假设您在程序集中有一个具有公共方法的Friend类:BlaFoo

Friend Class Bla
    Public Sub Foo
    (...)
End Class

它的行为是否与Foo设置为 Friend 时不同?如果是这样,你建议哪一个?

Friend Class Bla
    Friend Sub Foo
    (...)
End Class

谢谢!

4

2 回答 2

1

在我看来,无论是指定public还是Friendfor都没有关系,Foo因为封闭类仅在此程序集中可用。

可以选择限制方法/属性的访问修饰符而不是类的访问修饰符。在您的示例中,该方法Foo也可以是私有的,这意味着该方法对调用者不可用,包括同一程序集中的其他类。

可以通过类/实例访问方法。如果类是private,方法有什么用public

编辑:附带说明,您可以将 的实例返回Bla给调用者(在其他程序集中)。在这种情况下,调用者应该能够调用public方法,如果Foo已声明public。这是我的假设。

于 2011-04-21T18:43:40.347 回答
1

如果有人确实跳过了访问所需的反射环Bla,他们不需要再次这样做来调用Public Sub Foo,但他们这样做了Friend Sub Foo

于 2012-11-30T09:56:08.233 回答