1. 类定义
[internal/public] [abstract/sealed] class MyClass [: MyBase[, IMyInterface, ...]]
{
// Class members
}
internal: 声明内部类,默认,只有当前项目中的代码能访问该类。
public: 声明公共类,可以由其他项目中的代码来访问该类,(并且该类中声明的成员不能是私有的或受保护的)。
abstract: 声明抽象类(不能实例化只能继承),可以包含抽象成员。
sealed: 声明密封类(不能继承只能实例化)。
MyClass —— 类名
MyBase —— 基类名,只能有一个基类,若继承一个抽象类则需要实现继承的所有抽象成员(除非派生类也是抽象的),若没有基类则表示继承于基类System.Object。
IMyInterface —— 接口名,可以有多个接口名。
2. 接口定义
interface IMyInterface [: IMyBaseInterface, ...]
{
// Interface members
}
internal: 声明内部类,默认,只有当前项目中的代码能访问该类。
public: 声明公共类,可以由其他项目中的代码来访问该类,(并且该类中声明的成员不能是私有的或受保护的)。
IMyInterface —— 接口名
IMyBaseInterface —— 继承接口名,可以有多个继承接口。
3. 字段定义
class MyClass
{
[public/private/protected/internal] [readonly/static/const] FieldType MyField;
}
public: 任何代码都能访问该成员。
private: 默认,只有类中的代码能访问该成员。
protected: 只有类中的代码或该类派生类中的代码能访问该成员。
internal: 只有当前项目内的代码能访问该成员。
readonly: 声明只读字段,表示该字段的值只能通过构造函数或初始化赋值语句获得。
static: 声明静态字段,该字段只能通过定义它的类来访问,如MyClass.MyField。
const: 声明常量字段。
FieldType —— 字段类型
MyField —— 字段名
4.方法定义
class MyClass
{
[public/private/protected/internal] [extern] [static] [virtual/abstract/override] RetType MyMethod(ArgType Argument, ...)
{
// Method implementation
}
}
public/private/protected/internal: 同字段定义
static: 声明静态方法,该方法只能通过定义它的类类访问,如MyClass.MyMethod()。
extern: 方法定义放在其他地方。
virtual: 声明虚拟方法,该方法允许在派生类中重写。
abstract: 声明抽象方法,该方法必须在非抽象的派生类中重写,并且抽象方法只能在派生类中定义。
override: 声明重写方法,该方法是基类中的方法重写,允许使用sealed限制该方法在派生类中重写。
RetType —— 方法返回值类型
MyMethod —— 方法名
ArgType —— 形式参数类型
Argument —— 形式参数名
5.属性定义
class MyClass
{
[public/private/protected/internal] [virtual/abstract/override] PropertyType MyProperty
{
[public/private/protected/internal] get
{
// Property get code
return RetValue;
}
[public/private/protected/internal] set
{
// Property set code
}
}
}
public/private/protected/internal: 同字段定义
virtual/abstract/override: 同方法定义
PropertyType —— 属性类型
MyProperty —— 属性名