类(class)是C#类型中最基础的类型。类是一个数据结构,将状态(字段)和行为(方法和其他函数成员)组合在一个单元中。类提供了用于动态创建类实例的定义,也就是对象(object)。类支持继承(inheritance)和多态(polymorphism),即派生类能够扩展和特殊化基类的机制。
使用类声明可以创建新的类。类声明以一个声明头开始,其组成方式如下:先是指定类的特性和修饰符,后跟类的名字,基类(如果有的话)的名字,以及被该类实现的接口名。声明头后面就是类体了,它由一组包含在大括号({})中的成员声明组成。
下面是一个名为Point的简单类的声明:
public class Point
{
   public int x, y;
   
   public Point(int x, int y){
     this.x = x;
     this.y = y;
   }
}
使用new运算符创建类的实例,它将为新实例分配内存,调用构造函数初始化实例,并且返回对该实例的引用。下面的语句创建两个Point对象,并且将那些对象的引用保存到两个变量中:
    Point p1 = new Point(0, 0);
    Point p2 = new Point(10, 20);
当不再使用对象时,该对象所占的内存将被自动回收。在C#中,没有必要也不可能显式地释放对象。
1.6.1  成员
类的成员或者是静态成员(static member),或者是实例成员(instance member)。静态成员属于类,实例成员属于对象(类的实例)。
表1.6提供了类所能包含的各种成员的描述。
表1.6  类 的 成 员
成    员
 描    述
 
常数
 与类关联的常量值
 
字段
 类的变量
 
方法
 能够被类执行的计算和行为
 
属性
 使对象能够读取和写入类的命名属性
 
索引器
 使对象能够用与数组相同的方式进行索引
 
事件
 能够被类产生的通知
 
运算符
 类支持的转换和表达式运算符