☰
C#构造函数-创建对象
2026/10/9 1:03:36 网站建设 项目流程

一、什么是构造函数

构造函数(constructor)用于执行类的实例的初始化。每个类都有构造函数。C# 中通过 new 关键字创建对象的过程,其实就是通过 new 关键字调用类的构造函数的过程。创建对象时,必须调用构造函数;如果没有定义构造函数,系统会提供一个默认的构造函数。

在访问一个类的时候,系统将最先执行构造函数中的语句。任何构造函数的执行都隐式地调用了系统提供的默认构造函数 base(),可以有参数,也可以没有。有参数的时候,类在实例化的时候必须传递参数。

二、构造函数的语法

构造函数是类中的特殊方法,C# 使用构造函数来初始化变量。创建构造函数的语法如下:

class 类名 { <访问修饰符> 类名() { // 构造函数主体 } }

三、构造函数的定义规则

构造函数的定义规则如下:

  1. C# 语言的构造函数的名称必须与类名相同。
  2. 构造函数没有返回值。它可以带参数,也可以不带参数。
  3. 声明类对象时,系统自动调用构造函数。在构造函数中不要做对类的实例进行初始化以外的事情,也不能被显式地调用。
  4. 构造函数可以重载,从而提供初始化类对象的不同方法。
  5. 若在声明时未定义构造函数,系统会自动生成默认的构造函数,此时构造函数的函数体为空。
  6. 静态构造函数用 static 修饰,用于初始化静态变量。一个类只允许有一个静态构造函数,在类实例化时加载,这时修饰符 public、private 失去作用。
  7. 构造函数可以使用 public、protected、private 修饰符。一般地,构造函数总是 public 类型的。private 类型的构造函数表明类不能被实例化,通常用于只含有静态成员的类。
  8. 引用父类构造时用 base() 方法,引用自身重载的构造使用 this(int para)。
  9. 一个构造函数的返回类型是这个类的一个实例,而一个普通方法的返回类型可以是任何类型。

四、注意事项

在使用构造函数时,需要注意以下几点:

  1. 定义了一个带参构造函数后,一定要定义一个无参构造函数,这样可以避免子类调用时出错。
  2. 调用基类构造函数:base() 或 base(参数列表);调用本类其它构造函数:this() 或 this(参数列表)。
  3. 只有在用 base 显式调用父类的构造函数时,程序才不会默认地调用不带参数的构造函数。

五、无参数构造函数

下面这种构造函数不接受任何参数,称为无参数构造函数。

class TestClass { public TestClass() : base() {} // 由 CLR 提供 }

六、完整示例

下面的代码说明了构造函数的声明方式:

// 构造对象时将执行构造函数 using System; public class Dog { public string name; public Dog() // 声明构造函数 { this.name = "未知"; Console.WriteLine("Dog():Dog类已被初始化。"); } public static void Main() { Dog myDog = new Dog(); // 会调用构造函数 Console.WriteLine("myDog的名字为“{0}”。"); } }

在访问一个类的时候,系统将首先执行构造函数中的语句。构造函数的功能是创建对象,使对象的状态合法化。在从构造函数返回之前,对象都是不确定的,不能用于执行任何操作;只有在构造函数执行完成之后,存放对象的内存块中才存放这一个类的实例。

说明:成员变量使用了 this 关键字,在这里 this 代表当前实例。使用 this 关键字编码时可以有效防止变量名输入错误。

七、运行结果

上述代码的执行结果如下:

Dog():Dog类已被初始化。 myDog的名字为“未知”。

显然,在创建对象时执行了构造函数。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询