一.成员定义
类的成员包括:字段、方法和属性,所有成员都有自己的访问级别,包括:
public -------->成员可以由任何代码访问
private ---->默认类型,成员只能由类中的代码访问
internal ---->成员只能由定义它的程序集(项目)内部的代码访问
portected --->成员只能由类或派生类中的代码访问
static ---->表示类的静态成员,只能由类来访问,不能由类的实例访问
1.定义字段
标准变量声明格式即可,但有如下注意事项:
1).公共字段用PascalCasing形式命名
2).除上述访问控制字符外,还可以结合如下两个关键字:
readonly ---->字段只能在执行构造函数的过程中赋值或由初始化赋值语句赋值
static --------->静态字段,该字段只能由类访问,不能用类的对象访问
const --------->常量
2.定义方法
标准的函数声明格式、可访问性和可选的修饰符
1).公共方法也用PascalCasing格式命名
2).可选关键字如下:
virtual --->方法可以重写
abstract --->方法必须在非抽象的派生类中重写(只用于抽象)
override ---->方法重写了一个基类的方法(必须)
extern ----->方法定义放在其他地方
override sealed----->子类中不能对这个方法作进一步修改
3.定义属性
定义方式与字段类似,但里面用访问器
1.属性可以使用virtual、override和abstract关键字
2.访问器也可以有自己的可访问性,但访问器的访问级别不能高于包含该属性的类的访问几倍
3.get和set块可以拥有单独的访问级别
二.类成员的其他主题
1.重写方法
继承类使用与父类方法名相同的方法,但方法内容不同
2.隐藏方法
用new关键字隐藏来自基类的方法
注:new关键字不能与overral修饰同一个方法
3.调用重写或隐藏的基类方法
用base或this关键字
4.嵌套的类型定义
类除了可以定义在命名空间中外,还可以定义在其他类中
三.接口的实现
1.接口的定义与类的定义相似,但接口成员与类成员却又如下区别:
1>.所有接口成员都是隐式的公共的,不能用public、private、protected和internal
2>.接口成员不能包含代码体
3>.接口不能定义字段成员
4>.不能用关键字 static、virtual、abstract或sealed来定义接口成员
5>.类型定义成员是被禁止的
6>.隐藏从基类接口中继承的成员,用关键字new
7>.接口可以成为类的成员,但类和接口不能成为接口的成员
2.在类中实现接口
1>.实现接口的类必须包含该接口所有成员的实现代码,且必须匹配指定的签名
2>.类必须是公共public的
3>.可以使用关键字virtual和abstruct来实现接口成员,但不能使用static或const
4>.还可以在基类上实现接口。继承了一个实现了接口的基类,子类隐式的支持该接口
5>.接口成员中包括属性,则必须实现匹配get/set存取器。且存取器的修饰符必须是比接口中已经定义的修饰符更严格的修饰符
四.部分类定义
把一个类定义拆分成多个模块,用partial关键字。如可以把所有字段放在一个部分、把所有属性放在一个部分等。
1>.部分定义的类名是一样的
2>.如果类是继承自某基类的子类,则部分类定义是基类名称是一致的。因为子类只能有一个基类
3>.部分类实现不同的接口,与类实现所有接口是等价的
五.部分方法定义
方法也可以分部分用partial定义,同一个方法在A部分中只有方法名,在B部分中有方法体