CLR笔记:6.类型和成员基础2011-10-26 博客园 包建强1.Class的可见性有public和internal两种,public对所有程序集都可见,internal仅对其所在的程序 集可见。默认是public的。2.友元程序集,使用friend assembly可以实现单元测试,而不使用反射技术。书上讲的是按照命令行编译。我测试用的是vs2005的solution,如下:3.成员的可访问性成员默认是private的,接口类型的成员都是public的。子类重写父类的成员时,原始成员与重写成员要有相同的可访问性——C#的约束;CLR的约束是,重写 成员的可访问性不能更低。CLR和C#是不一样的,如表:
CLR术语 | C#术语 |
Private | private |
Family | protected |
Family and Assembly | 不支持 |
Assembly | internal |
Family or Assembly | protected internal |
Public | public |
4.静态类static只能用于class,不能用于struct,因为CLR要求值必须实例化,而且不能控制实例化过程。C#对静态类的约束:静态类必须直接从System.Object派生静态类不能实现任何接口静态类只能定义静态成员:字段,方法,属性,事件静态类不能用作:字段,方法,参数,局部变量。在MSIL中,不会为静态类生成ctor,会将其标记为abstract和sealed