最适合网络开发者的网站
C# 语言。W3Schools 英文课程

尿素 西斯

C# 构造函数


构造函数

构造函数 特殊方法 用于初始化对象。构造函数的优点是,它在创建类的对象时被调用。它可用于设置字段的初始值:

例子

创建构造函数:

// Create a Car class
class Car
{
  public string model;  // Create a field

  // Create a class constructor for the Car class
  public Car()
  {
    model = "Mustang"; // Set the initial value for model
  }

  static void Main(string[] args)
  {
    Car Ford = new Car();  // Create an object of the Car Class (this will call the constructor)
    Console.WriteLine(Ford.model);  // Print the value of model
  }
}
// Outputs "Mustang"

亲自尝试 »

注意构造函数名称必须 匹配类名,并且它不能有 返回类型 (喜欢void 或者int).

还要注意,在创建对象时会调用构造函数。

所有类都默认有构造函数:如果您不自己创建类构造函数,C# 会为您创建一个。但是,您无法为字段设置初始值。

构造函数节省时间! 看一下本页的最后一个例子就能真正理解原因。


构造函数参数

构造函数还可以接受参数,用于初始化字段。

以下示例添加了 string modelName 构造函数的参数。在构造函数中,我们设置modelmodelName (model=modelName)。当我们调用构造函数时,我们向构造函数传递一个参数("Mustang"),这将设置 model"Mustang":

例子

class Car
{
  public string model;

  // Create a class constructor with a parameter
  public Car(string modelName)
  {
    model = modelName;
  }

  static void Main(string[] args)
  {
    Car Ford = new Car("Mustang");
    Console.WriteLine(Ford.model);
  }
}
// Outputs "Mustang"

亲自尝试 »

你可以拥有任意数量的参数:

例子

class Car
{
  public string model;
  public string color;
  public int year;

  // Create a class constructor with multiple parameters
  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);
  }
}
// Outputs Red 1969 Mustang

亲自尝试 »

提示: 与其他方法一样,构造函数可以超载 通过使用不同数量的参数。


节省构造函数时间

当你考虑上一章中的例子时,你会注意到构造函数非常有用,因为它们有助于减少代码量:

没有构造函数:

程序集

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);
  }
}

亲自尝试 »

使用构造函数:

程序集

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);
  }
}

亲自尝试 »