[英]Reuse parameters when calling base constructor c#
I have the following class structure: 我具有以下类结构:
class Foo{
public Foo(Bar bar, Qux qux){
...
}
}
class Bar{}
class Qux{
public Qux(Bar bar){
...
}
}
And I want create a new class FooFoo
with a constructor without parameters something like: 我想用一个没有参数的构造函数创建一个新的类
FooFoo
:
class FooFoo:Foo{
public FooFoo():base(var bar=new Bar(), new Qux(bar)) {
//this do not compile
}
}
How can I do it? 我该怎么做?
Currently my solution is: 目前,我的解决方案是:
class FooFoo:Foo{
public static FooFoo instantiate(){
var bar= new Bar();
var qux= new Qux(bar);
return new FooFoo(bar,qux);
}
private FooFoo(Bar bar, Qux qux):base(bar,qux) {
}
}
But it sound bad, right? 但这听起来不好,对吗?
How about: 怎么样:
public class FooFoo : Foo
{
public FooFoo() : this(new Bar())
{
}
public FooFoo(Bar bar) : base(bar, new Qux(bar))
{
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.