[英]C# Static Classes & Scope
我只是想知道为什么我不能将静态类定义为protected,private等?
protected static class Class1 {}
编译器给出以下错误消息:
命名空间中定义的元素不能显式声明为private,protected或protected internal
因为在命名空间中拥有私有或受保护的成员没有意义。 命名空间不是像类一样的孤立统一,因此私有成员是有意义的。 命名空间不能被继承,因此对受保护的成员没有用处。
您可以在另一个类中拥有私有或受保护的静态类:
public class X {
private static class Y { }
protected static class Z { }
}
我只是引用C#规范中的相应子句:
顶级类型(不嵌套在其他类型中)只能具有内部或公共可访问性。 这些类型的默认可访问性是内部的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.