C# 构造函数
构造函数
构造函数是用于初始化对象的特殊方法。构造函数的优点是在创建类的对象时调用它。它可用于设置字段的初始值:
实例
创建一个构造函数:
// 创建 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# 将为您创建一个。但是,您不能为字段设置初始值。
节省开发者时间! 看看这一页的最后一个例子来真正理解原因。
构造函数参数
构造函数还可以接受参数,用于初始化字段。
下面的示例向构造函数添加一个字符串参数string 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
提示: 与其他方法一样,构造函数可以通过使用不同数量的参数来重载。
节省开发者时间
考虑上一章中的示例时,您会注意到构造函数非常有用,因为它们有助于减少代码量:
Without constructor:
Program.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);
}
}
With constructor:
Program.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);
}
}