.NET中可以保护类吗?
为什么/这不可能?.NET中受保护的类
32
A
回答
67
是的,你不能让他们顶层类,它们必须是内部类
public class Outer
{
protected class Foo
{
}
}
这是罚款,这意味着只有类允许看到富是外
class X
{
// 'Outer.Foo' is inaccessible due to its protection level
private void Flibble(Outer.Foo foo)
{
}
}
class X : Outer
{
// fine
private void Flibble(Outer.Foo foo)
{
}
}
的子类
请注意,您不能在c#中声明任何外部类为private,protected(或protected内部),因为外部级别类的访问修饰符定义了它们相对于其他程序集的可见性。仅在程序集内(或通过InternalsVisibleTo向朋友)或程序集外可见。
因此,尽管公共/内部标识符这里用于一致性确实在IL的状态是简单的“公开”或“非公开”(作为Reflection.Emit flags show)
11
protected
能见度被用于指示“派生类可见”。这对班级内的事物是有意义的,但在班级一般没有意义。
对此的唯一例外是内部类,其中受保护的可见性意味着派生类将有权访问内部类。
3
是的,我们不能让他们顶层类,它们必须是内部类
相关问题
- 1. 受保护的内部和受保护的行为类似
- 2. 受保护的派生类
- 3. Java中受保护的类结构?
- 4. 密封类中的受保护成员
- 5. 抽象类中的受保护方法
- 6. 类不保留受保护的值
- 7. 如何保护java.lang.Object的受保护方法免受子类攻击?
- 8. 用受保护的方法装饰类
- 9. 访问Android类的受保护变量
- 10. 受保护类的Javadoc方法
- 11. Java - 受保护的'getters'与嵌套类
- 12. 一类受保护成员的思考
- 13. 受保护的构造抽象类
- 14. 对象类的受保护方法MemberWiseClone()
- 15. 克隆受保护的边缘受保护的驱动器
- 16. 访问基类从派生类中受保护的嵌套类
- 17. 受保护的内部和内部受保护有区别吗?
- 18. Spring oauth2指定受保护和不受保护的资源
- 19. 覆盖受保护的内部受保护!
- 20. 受保护与不受保护的区别
- 21. 要访问子类中的父类的受保护的字段
- 22. 访问派生类中的类的受保护成员
- 23. 继承和受保护类java
- 24. C++类(公共,私有和受保护)
- 25. 从受保护的Wordpress网站中排除受htpasswd保护的单个目录
- 26. 无法访问受保护的类成员在派生类中
- 27. OOP:依赖于类 - 子类合同中的受保护属性
- 28. Junit受保护的方法
- 29. ASP.NET - 受保护的变量
- 30. C++受保护的访问
+1清晰的例子。 – 2009-06-19 13:38:50