📜  c#构造函数调用另一个构造函数 - C#(1)

📅  最后修改于: 2023-12-03 14:59:44.304000             🧑  作者: Mango

C#构造函数调用另一个构造函数

C#中的构造函数可以调用同一个类中的另一个构造函数,以便减少代码的重复。这个语法叫做构造函数重载(Constructor Overloading)。

在同一个类中调用另一个构造函数

同一个类中的构造函数可以使用 this 关键字来调用同一个类中的另一个构造函数。例如:

public class MyClass
{
    private int myValue;

    public MyClass() : this(0)
    {
    }

    public MyClass(int value)
    {
        myValue = value;
    }
}

上面的代码定义了一个叫做 MyClass 的类,这个类包含了两个构造函数。第一个构造函数调用了第二个构造函数来初始化 myValue。这个语法有点像默认参数值的语法。

在第一个构造函数中,使用 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;
    }
}

这个例子中定义了一个 Person 类,这个类可以用不同的方式来初始化姓名和年龄:

Person p1 = new Person();
Person p2 = new Person("Tom");
Person p3 = new Person(25);
Person p4 = new Person("Jerry", 30);

每个构造函数都调用了同一个类中的另一个构造函数来初始化属性。这样可以减少代码的重复,提高代码的可读性。

总结

C#中的构造函数可以调用同一个类中的另一个构造函数,以便减少代码的重复。这个语法叫做构造函数重载(Constructor Overloading)。在同一个类中,使用 this 关键字来调用同一个类中的另一个构造函数。这个调用必须是构造函数中的第一条语句。这样可以减少代码的重复,提高代码的可读性。