不重复代码的构造函数

Cha*_*ris 0 c#

我有2个构造函数,其中有一个基本调用;

public MyApplication(myEntities context)
            :base(context)
{
    _1stApp = new 1stApplication(this._context);
    _2ndApp = new 2ndApplication(this._context);
    // etc...
}

public MyApplication()
            :base()
{
    _1stApp = new 1stApplication(this._context);
    _2ndApp = new 2ndApplication(this._context);
    // etc...
}
Run Code Online (Sandbox Code Playgroud)

以及基础构造函数

public BaseApplication()
{
    _context= new myEntities ();
}

public BaseApplication(myEntities context)
{
    if (context==null)
        _context = context;
    else
        _context= new myEntities ();
}
Run Code Online (Sandbox Code Playgroud)

在MyApplication构造函数中,我想要传递由另一个应用程序创建的上下文,或者我想创建一个新的上下文.在任何一种情况下,我都希望与MyApplication实例化的所有其他应用程序类(1stApp,2ndApp等)共享相同的上下文.

我不想在两个地方保持相同的代码.

mp3*_*ret 5

public MyApplication(myEntities context)
        :base(context)
{
   _1stApp = new 1stApplication(this._context);
   _2ndApp = new 2ndApplication(this._context);
   etc...
}

public MyApplication()
    :this(new myEntities())
{ }
Run Code Online (Sandbox Code Playgroud)