命名空间内的私有类

use*_*253 12 c# oop

可能重复:
C#/ .NET中只有名称空间的类可见性?

我想要的是拥有一个只能在同一命名空间内的其他类访问的类,而不必将命名空间放在它自己的程序集中.

有没有理由在C#中这是不可能的?

编辑:我已经改变了一点问题,因为编译器告诉我这private是不允许的.谁能告诉我这个的原因?

geh*_*hho 7

这是不可能的.

您只能使用修饰符限制对包含类的程序集的访问internal.

你也可以限制访问类的单一通过将类嵌套类.例如,如果您将类B作为A类中的私有嵌套类,则B只能由A访问.

我认为这两个选项是你能做的最好的选择.如果您确实要限制对命名空间的访问,则必须将其放在单独的程序集中.

编辑:第二个问题:为什么不允许私人课程.仅当私有类嵌套在另一个类中时才允许使用私有类.如果将非嵌套类设为私有,它的用途是什么?无论如何你都无法访问它,因此你无法使用它.


And*_*zub 3

除了gehho的答案之外:命名空间只是类型名称的一部分(它只允许所有类型具有唯一的名称) - 这就是为什么你不能限制对命名空间内的类型的访问。