在C#中的一个构造函数中有两个构造函数调用[重复]

问题描述 投票:-2回答:1

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

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() ?
    }
}
c# constructor base
1个回答
1
投票

此代码实际上在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)。对于多个构造函数,您实际编写的构造函数始终是带有most参数的构造函数。其他所有构造函数都可以在那里链接,并为每个步骤提供默认值。

© www.soinside.com 2019 - 2024. All rights reserved.