C# 中一个构造函数内的两个构造函数调用

Two constructor calls inside one constructor in C#

我知道如何为同一个 class 或基础 class 的构造函数调用另一个构造函数,但我如何同时执行这两个操作?这是我希望实现的示例,请注意,在实际情况下,我们可能想要做一些比设置 属性:

更复杂的事情
public class BaseClass
{
    public BaseClass(object param)
    {
        // base constructor
    }
}

public class DerivedClass
{
    DateTime Date { get; private set; }

    public DerivedClass()
    {
        Date = GenerateDate();
    }
    public DerivedClass(object param) : base(param)
    {
        // How do I make it call DerivedClass() ?
    }
}

这段代码实际上是在 Sharp Lab 中编译的。并不是说我必须修复一些次要的东西。

using System;

public class BaseClass
{
    public BaseClass(object param)
    {
        // base constructor
    }
}

public class DerivedClass : BaseClass
{
    public DateTime Date { get; private set; }

    public DerivedClass() : this(new object()) { }

    public DerivedClass(object param) : base(param)
    {
        //Do Date = GenerateDate(); here
        //Had to cut your pseudo code, as it broke compilation
    }
}

你搞错了:你需要 DerivedClass() 才能调用 DerivedClass(object param)。对于多个构造函数,您实际编写出的构造函数始终是具有 最多 个参数的构造函数。所有其他构造函数都在那里链接到它,每一步都给出一个默认值。