.NET - 是否可以声明只能访问命名空间的模块成员?

Bri*_*ter 3 .net vb.net namespaces

我想声明一个模块的某些成员可以访问整个命名空间,但是没有它们就无法访问它们.

这可能吗?

谢谢.

Mar*_*ell 9

(为C#术语/例子道歉......)

不可以.你可以限制:

  • 到当前的程序集(internal)
  • 命名其他程序集([InternalsVisibleTo])
  • 到子类(protected)

(以及某些组合,例如protected internal)

就是这样.什么都不基于调用者的命名空间.毕竟 - 我可以这样做:

namespace Your.Namespace {
    public static class MyEvilClass {
       public static void DoEvil() {
           YourPrivateClass.PushTheRedButton();
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

我打破了它......


Tig*_*ine 5

不,只有内部可访问性限制了对当前程序集的访问.

C#中的访问级别

由于你的帖子有VB.NET标签:internal是ac#keyword,它在VB中是等价的朋友:

VB.NET中的朋友关键字

洞名单是:

VB.NET中的访问级别