C# 构造函数全解析
1. 构造函数基础
在 C# 中,新创建的对象可能需要一些信息才能完成其工作。以 System
命名空间中的 Uri
类为例,它代表统一资源标识符(URI),如 URL。如果一个 Uri
对象不知道它所代表的 URI,那么它就没有什么实际意义。因此,不提供 URI 就无法创建 Uri
对象,尝试运行以下代码会导致编译器错误:
Uri oops = new Uri(); // Will not compile
Uri
类定义了多个构造函数,构造函数是包含初始化类型新实例代码的成员。如果某个类需要特定信息才能正常工作,可以通过构造函数来强制要求提供这些信息。创建类的实例几乎总是会在某个阶段使用构造函数,所以如果定义的所有构造函数都要求特定信息,开发者若想使用该类,就必须提供这些信息。
如果编写的类包含不可为空的引用类型实例字段(例如 private string name;
),而没有使用字段初始值设定项或构造函数中的代码对这些字段进行初始化,编译器会发出警告。构造函数的主要工作是使实例处于有效状态,这包括确保所有不可为空的字段不为空。
2. 构造函数类型
2.1 主构造函数
主构造函数在 C# 12.0 之前不适用于 class
或 struct
类型。主构