C# 构造函数
构造函数
构造函数 (Constructors) 是一种特殊的方法,用于初始化对象。构造函数的优势在于,当创建类的一个对象时,它会被调用。它可以用于为字段设置初始值:
实例
创建一个构造函数:
// 创建一个 Car 类 class Car { public string model; // 创建一个字段 // 为 Car 类创建一个类构造函数 public Car() { model = "Mustang"; // 为 model 设置初始值 } static void Main(string[] args) { Car Ford = new Car(); // 创建一个 Car 类的对象(这将调用构造函数) Console.WriteLine(Ford.model); // 打印 model 的值 } } // 输出 "Mustang"
提示
请注意,构造函数的名称必须与类名匹配,并且它不能具有返回类型(如 void
或 int
)。
还要注意,当对象被创建时,构造函数会被调用。
默认地,所有类都有构造函数:如果你不自己创建类构造函数,C# 会为你创建一个。但是,那么你将无法为字段设置初始值。
构造函数节省时间!请查看此页面上的最后一个实例,以真正理解为什么。
构造函数参数 ( Constructor Parameters )
构造函数也可以接受参数,这些参数用于初始化字段。
以下实例向构造函数添加了一个字符串 modelName
参数。在构造函数内部,我们将 model
设置为 modelName
(model=modelName)。当我们调用构造函数时,我们向构造函数传递一个参数 ("Mustang"
),这将把 model
的值设置为 "Mustang"
:
实例
class Car { public string model; // 创建一个带有参数的类构造函数 public Car(string modelName) { model = modelName; } static void Main(string[] args) { Car Ford = new Car("Mustang"); Console.WriteLine(Ford.model); } } // 输出 "Mustang"
您可以拥有任意数量的参数:
实例
class Car { public string model; public string color; public int year; // 创建一个带有多个参数的类构造函数 public Car(string modelName, string modelColor, int modelYear) { model = modelName; color = modelColor; year = modelYear; } static void Main(string[] args) { Car Ford = new Car("Mustang", "Red", 1969); Console.WriteLine(Ford.color + " " + Ford.year + " " + Ford.model); } } // 输出 Red 1969 Mustang
提示:与其他方法一样,构造函数可以通过使用不同数量的参数进行重载。
构造函数节省时间
当你考虑前一章中的例子时,你会注意到构造函数非常有用,因为它们有助于减少代码量:
没有构造函数:
prog.cs
class Program { static void Main(string[] args) { Car Ford = new Car(); Ford.model = "Mustang"; Ford.color = "red"; Ford.year = 1969; Car Opel = new Car(); Opel.model = "Astra"; Opel.color = "white"; Opel.year = 2005; Console.WriteLine(Ford.model); Console.WriteLine(Opel.model); } }
输出:
Mustang Astra
有构造函数:
prog.cs
class Program { static void Main(string[] args) { Car Ford = new Car("Mustang", "Red", 1969); Car Opel = new Car("Astra", "White", 2005); Console.WriteLine(Ford.model); Console.WriteLine(Opel.model); } }
输出:
Mustang Astra