public class BaseFoo
{
    private string param;

    public BaseFoo(string param)
    {
        this.param = param;
    }
}

public sealed class SingletonFoo : BaseFoo
{
    static readonly SingletonFoo instance = new SingletonFoo();

    static SingletonFoo()
    {
    }

    public static SingletonFoo Instance
    {
        get
        {
            return instance;
        }
    }
}


在基类需要带有参数的构造函数的情况下,这种继承是否可能? (上面的代码显然不会编译,因为没有参数传递给基类。)

如果是,如何完成?

最佳答案

您需要创建一个实例构造函数,然后引用它:

public sealed class SingletonFoo : BaseFoo
{
    static readonly SingletonFoo instance = new SingletonFoo("Some Value");

    static SingletonFoo()
    {
    }

    private SingletonFoo(string value) : base(value)
    {
    }
    // ...


这将使您可以在内联构造函数中声明参数,并在链中进行调用。

10-04 15:10