可以说我有以下几点:
public interface IFoo
{
void Foo();
}
public interface IBar
{
void Bar();
}
public class FooAndBar : IFoo, IBar
{
//valid implementation
}
现在,我有一个在构造函数中包含IFoo和IBar的类,但也具有一个无参数的构造函数。
public class Consumer
{
private IFoo foo;
private IBar bar;
public Consumer(IFoo foo, IBar bar)
{
this.foo = foo;
this.bar = bar;
}
public Consumer() : this(new FooAndBar(), new FooAndBar()) {}
}
我想维护调用参数化版本的无参数构造函数之间的关系。但是我想传递一个引用的对象,而不是“新建”两个FooAndBar实例。无论如何在保持构造函数之间关系的同时做到这一点?
最佳答案
您可以创建一个以FooAndBar作为参数的临时私有构造函数:
private Consumer(FooAndBar fooAndBar) : this(fooAndBar, fooAndBar) {}
public Consumer() : this(new FooAndBar()) {}
关于c# - 重载的构造函数多次传递相同的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10111504/