2

私が次のものを持っているとしましょう:

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()) {}
}

パラメーター化されたバージョンを呼び出すパラメーターなしのコンストラクター間の関係を維持したいと思います。ただし、2つのFooAndBarインスタンスを「新規作成」するのではなく、1つの参照オブジェクトを渡したいと思います。コンストラクター間の関係を維持しながらこれを行う方法はありますか?

4

1 に答える 1

8

FooAndBarをパラメーターとして受け取る暫定プライベートコンストラクターを作成できます。

private Consumer(FooAndBar fooAndBar) : this(fooAndBar, fooAndBar) {}

public Consumer() : this(new FooAndBar()) {}
于 2012-04-11T18:12:26.940 に答える