实例构造函数用于创建和初始化实例。创建新对象时将调用类构造函数,例如:

C# CopyCode image复制代码
class CoOrds
{
    public int x, y;

    // constructor
    public CoOrds()
    {
        x = 0;
        y = 0;
    }
}
Note注意

为了清楚起见,此类包含公共数据成员。建议不要使用这种编程方法,因为它使程序中任何位置的任何方法都可以不受限制、不经验证地访问对象的内部组件。数据成员通常应当为私有的,并且只应当通过类方法和属性来访问。

无论何时创建基于 CoOrds 类的对象,都会调用此构造函数。诸如此类不带参数的构造函数称为“默认构造函数”。然而,提供其他构造函数通常十分有用。例如,可以向 CoOrds 类添加构造函数,以便可以为数据成员指定初始值:

C# CopyCode image复制代码
// A constructor with two arguments:
public CoOrds(int x, int y)
{
    this.x = x;
    this.y = y;
}

这样便可以用默认或特定的初始值创建 CoOrd 对象,如下所示:

C# CopyCode image复制代码
CoOrds p1 = new CoOrds();
CoOrds p2 = new CoOrds(5, 3);

如果类没有默认构造函数,将自动生成一个构造函数,并且将用默认值来初始化对象字段,例如,int 被初始化为 0。有关默认值的更多信息,请参见默认值表(C# 参考)。因此,由于 CoOrds 类的默认构造函数将所有数据成员都初始化为零,因此可以将它完全移除,而不会更改类的工作方式。本主题的稍后部分的示例 1 中提供了使用多个构造函数的完整示例,示例 2 中提供了自动生成的构造函数的示例。

也可以用实例构造函数来调用基类的实例构造函数。类构造函数可通过初始值设定项来调用基类的构造函数,如下所示:

C# CopyCode image复制代码
class Circle : Shape
{
    public Circle(double radius)
        : base(radius, 0)
    {
    }
}

在此示例中,Circle 类将表示半径和高度的值传递给 ShapeCircle 从它派生而来)提供的构造函数。使用 ShapeCircle 的完整示例请见本主题中的示例 3。

Expand 图像示例 1

Expand 图像输出

Expand 图像示例 2

Expand 图像输出

Expand 图像示例 3

Expand 图像输出

Expand image请参见