📜  在C#中使用此关键字调用重载的构造函数(1)

📅  最后修改于: 2023-12-03 15:23:23.030000             🧑  作者: Mango

在C#中使用此关键字调用重载的构造函数

C#中的构造函数是一种特殊的方法,用于初始化类中的字段和属性。有时候,我们可能需要在一个构造函数中调用另一个构造函数,这就是所谓的构造函数重载。在C#中,我们可以使用关键字this来调用重载的构造函数。

下面是一个使用this关键字调用重载构造函数的示例:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    public Person() : this("Unknown", 0)
    {
    }

    public Person(string name) : this(name, 0)
    {
    }

    public Person(int age) : this("Unknown", age)
    {
    }

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

在上面的示例中,我们定义了四个重载的构造函数。其中,最后一个构造函数是可以接受两个参数的,而其他三个构造函数都是调用了最后一个构造函数。我们可以看到,在调用构造函数时使用this关键字,可以在一个构造函数中调用另一个构造函数。

当我们创建一个Person对象时,可以按以下方式调用构造函数:

Person p1 = new Person();            // 默认值
Person p2 = new Person("Tom");       // 指定名字
Person p3 = new Person(20);          // 指定年龄
Person p4 = new Person("Tom", 20);   // 指定名字和年龄

在这些示例中,我们分别调用了不同的构造函数,使用this关键字进行了构造函数的重载。

在使用this关键字调用重载的构造函数时,需要注意以下几点:

  • 调用重载构造函数的语句必须放在构造函数的第一行。
  • 不要在一个构造函数中调用自身,否则会导致无限递归。
  • this关键字只能在构造函数中使用,不能在其他方法或属性中使用。

总之,在C#中使用this关键字调用重载的构造函数,可以避免代码重复,使代码更加简洁和易于维护。