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)
{
}
// ...
这将允许您在内联构造函数中声明参数,并在链中调用它。
关于c# - 从在其构造函数中接受参数的基类继承的单例类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1291117/