2012-04-11 109 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