返回首页 C# 语言规范-基本概念篇

成员

命名空间和类型都拥有成员。在实体开始被引用时,实体成员一般都可通过限定名称(qualified name)引入其中,通过标记(token). 引出成员的名字。

类型的成员既可在类型声明中声明,也可从其基类中继承。当一个类型继承自其基类时,所有基类成员(除了实例构造函数、析构函数以及静态构造函数)都将成为派生类型的成员。基类成员的声明可访问性并不控制成员是否可被继承——继承可拓展到除实例构造函数、析构函数和静态构造函数之外的任意成员。然而。也有可能派生类型无法访问到所继承的成员,比方说因为其声明可访问性(第三章第 5.1 节)或是因为其通过类型自身声明隐藏(第三章第 7.1.2 节)。

命名空间成员

如果命名空间与类型没有闭包于一个命名空间,则它们将是全局命名空间(global namespace)的成员。这相当于名字直接在全局声明空间内声明了。

如果命名空间与类型在一个命名空间内,那么命名空间和类型将是这个外部命名空间的成员。这意味着名字直接在这个命名空间的声明空间内声明了。

命名空间没有访问限制(access restrictions)。不可以为命名空间声明为 private、 protected 或 internal,命名空间永远是可公开取得的(publicly accessible)。

结构成员

结构成员是结构内声明的成员,以及直接继承自结构基类 System.ValueType 以及间接继承自基类 object 的成员。

简单类型的成员通过类型别名(alias)直接对应结构类型的成员:

  • sbyte 的成员是 System.SByte 结构的成员;

  • byte 的成员是 System.Byte 结构的成员;

  • short 的成员是 System.Int16 结构的成员;

  • ushort 的成员是 System.UInt16 结构的成员;

  • int 的成员是 System.Int32 结构的成员;

  • uint 的成员是 System.UInt32 结构的成员;

  • long 的成员是 System.Int64 结构的成员;

  • ulong 的成员是 System.UInt64 结构的成员;

  • char 的成员是 System.Char 结构的成员;

  • float 的成员是 System.Single 结构的成员;

  • double 的成员是 System.Double 结构的成员;

  • decimal 的成员是 System.Decimal 结构的成员;

  • bool 的成员是 System.Boolean 结构的成员。

枚举成员

枚举内的成员是枚举声明的常量以及直接继承自枚举基类 System.Enum 与间接继承自基类 System.ValueTypeobject 的成员。

类成员

在一个类中声明的成员与继承自基类的成员都是这个类的成员(除了没有基类的 object 类)。继承自基类的成员包括常量、字段、方法、属性、事件、索引器、操作符以及基类类型,但不包括基类的实例构造函数、析构函数和静态构造函数。基类成员的继承并不关心它们的可访问性。

类声明可以包含常量、字段、方法、属性、事件、索引器、操作符、实例构造函数、析构函数、静态构造函数和类型。

objectstring 的成员通过别名直接对应它们的类型:

  • object 的成员是 System.Object 类的成员;

  • string 的成员是 System.String 类的成员。

接口成员

接口成员声明于接口及其所有基接口内。严格来讲,类 object 内的成员不是任何接口的成员(见第十三章第二节),但通过接口类型成员查找到类 object 的成员(第七章第四节)。

数组成员

数组成员继承自类 System.Array

委托成员

委托成员继承自类 System.Delegate

上一篇: 声明 下一篇: 成员访问