2012-04-11 93 views
2

通过相同的参考可以说我有以下几点:重载的构造函数多次

public interface IFoo 
{ 
    void Foo(); 
} 

public interface IBar 
{ 
    void Bar(); 
} 

public class FooAndBar : IFoo, IBar 
{ 
    //valid implementation 
} 

现在我有一个类,它在IFoo的和伊巴尔在构造函数中,但有一个放慢参数的构造函数为好。

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实例。无论如何要做到这一点,同时仍然维护构造函数之间的关系?

回答

8

您可以创建一个临时的私人构造函数,一个FooAndBar作为参数:

+0

很聪明。谢谢。 – Shlomo 2012-04-11 18:32:17