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.ValueType
和 object
的成员。
类成员
在一个类中声明的成员与继承自基类的成员都是这个类的成员(除了没有基类的 object
类)。继承自基类的成员包括常量、字段、方法、属性、事件、索引器、操作符以及基类类型,但不包括基类的实例构造函数、析构函数和静态构造函数。基类成员的继承并不关心它们的可访问性。
类声明可以包含常量、字段、方法、属性、事件、索引器、操作符、实例构造函数、析构函数、静态构造函数和类型。
object
和 string
的成员通过别名直接对应它们的类型:
object
的成员是System.Object
类的成员;string
的成员是System.String
类的成员。
接口成员
接口成员声明于接口及其所有基接口内。严格来讲,类 object
内的成员不是任何接口的成员(见第十三章第二节),但通过接口类型成员查找到类 object
的成员(第七章第四节)。
数组成员
数组成员继承自类 System.Array
。
委托成员
委托成员继承自类 System.Delegate
。
更多建议: