我只是想知道为什么我不能将静态类定义为protected,private等?
protected static class Class1 {}
编译器提供以下错误消息:
命名空间中定义的元素不能显式声明为private,protected或protected internal
答案 0 :(得分:1)
答案 1 :(得分:1)
因为在命名空间中拥有私有或受保护的成员是没有意义的。命名空间不是像类一样的孤立统一,因此私有成员是有意义的。命名空间不能被继承,因此对受保护的成员没有用处。
您可以在另一个类中拥有私有或受保护的静态类:
public class X {
private static class Y { }
protected static class Z { }
}
答案 2 :(得分:0)
我只是引用了C#规范中的相应子句:
顶层类型,它们不是嵌套的 在其他类型中,只能有内部 或公共可访问性。默认 这些类型的可访问性是 内部