对象、类和结构
对象具有以下特点
C# 中使用的全都是对象,包括 Windows 窗体和控件。
对象是实例化的;也就是说,对象是从类和结构所定义的模板中创建的。
对象使用属性(C# 编程指南)获取和更改它们所包含的信息。
对象通常具有允许它们执行操作的方法和事件。
所有 C# 对象都继承自 Object。
类具有以下特点:
类只能从一个基类继承实现。
一个类可以实现多个接口。有关更多信息
类定义可在不同的源文件之间进行拆分
静态类是仅包含静态方法的密封类
结构具有以下特点:
结构是值类型,而类是引用类型。
向方法传递结构时,结构是通过传值方式传递的,而不是作为引用传递的。
与类不同,结构的实例化可以不使用 new 运算符。
结构可以声明构造函数,但它们必须带参数。
一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。
结构可以实现接口。
在结构中初始化实例字段是错误的。
类可以从其他类中继承。这是通过以下方式实现的:在声明类时,在类名称后放置一个冒号,然后在冒号后指定要从中继承的类(即基类)。
新类(即派生类)将获取基类的所有非私有数据和行为以及新类为自己定义的所有其他数据或行为。
因此,新类具有两个有效类型:新类的类型和它继承的类的类型。
类和结构具有表示其数据和行为的成员
字段
字段是被视为类的一部分的对象实例,通常保存类数据。例如,日历类可能具有一个包含当前日期的字段。
属性
属性是类中可以像类中的字段一样访问的方法。属性可以为类字段提供保护,避免字段在对象不知道的情况下被更改。
方法
方法定义类可以执行的操作。方法可以接受提供输入数据的参数,并且可以通过参数返回输出数据。方法还可以不使用参数而直接返回值。
方法在类或结构中声明,声明时,声明时需要指定访问级别、返回值、方法名称以及任何方法参数。方法参数放在括号中,并用逗号隔开。空括号表示方法不需要参数
事件
事件是向其他对象提供有关事件发生(如单击按钮或成功完成某个方法)通知的一种方式。事件是使用委托来定义和触发的。有关更多信息,请参见事件和委托。
运算符
运算符是对操作数执行运算的术语或符号,如 +、*、< 等。可以重新定义运算符,以便可以对自定义数据类型执行运算。有关更多信息,请参见可重载运算符(C# 编程指南)。
索引器
索引器允许以类似于数组的方式为对象建立索引。
构造函数
构造函数是在第一次创建对象时调用的方法。它们通常用于初始化对象的数据。
析构函数
析构函数是当对象即将从内存中移除时由运行库执行引擎调用的方法。它们通常用来确保需要释放的所有资源都得到了适当的处理。
嵌套类型
嵌套类型是在类或结构中声明的类型。嵌套类型通常用于描述仅由包含它们的类型所使用的对象。