Welcome

首页 / 软件开发 / .NET编程技术 / CLR笔记:6.类型和成员基础

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#术语
Privateprivate
Familyprotected
Family and Assembly不支持
Assemblyinternal
Family or Assemblyprotected internal
Publicpublic
4.静态类

static只能用于class,不能用于struct,因为CLR要求值必须实例化,而且不能控制实例化过程。

C#对静态类的约束:

静态类必须直接从System.Object派生

静态类不能实现任何接口

静态类只能定义静态成员:字段,方法,属性,事件

静态类不能用作:字段,方法,参数,局部变量。

在MSIL中,不会为静态类生成ctor,会将其标记为abstract和sealed