是否有访问修饰符(如public,private等)使所有类在同一名称空间(在同一文件夹中)成为朋友?
示例:
namespace MYPROJ.As {
public class A {
_______ A() {....}
}
}
namespace MYPROJ.As {
public class B {
public DoSomething() {
new A(); //I WANT THIS TO WORK
}
}
}
namespace MYPROJ.Cs {
public class C {
public DoSomething() {
new A(); //I DON'T WANT THIS TO WORK
}
}
}
修改
我希望只有B能够实现A.我是怎么做到的?
答案 0 :(得分:5)
如果通过“文件夹”你真的是指“命名空间” - 没有。 .NET访问修饰符根本不与命名空间相关。
基本上控制可访问性的是:
InternalsVisibleTo
(内部访问权限)进入另一个可以访问的程序集还有protected internal
,但我永远无法记住哪条路有效,我几乎从不使用它。)
因此,如果您可以将C类放入与A和B不同的程序集(它们彼此在同一个程序集中),那么您可以将构造函数设为A internal
并得到你想要的结果。
答案 1 :(得分:0)
内部是你正在寻找的东西
答案 2 :(得分:0)
不完全,但有internal
,它限制了对同一个程序集(即项目)中类的访问。