在链接构造函数时初始化字典<字符串、字符串>



我正在尝试以一种我认为可能不可能的方式设计一个链接构造函数的系统,但我想先检查一下。

我有5个重载构造函数,如下所示:

public SqlCeDB(string filename)
public SqlCeDb(string filename, Dictionary<string, string> options)
public SqlCeDB(string filename, string password)
public SqlCeDB(string filename, string password, Dictionary<string, string> options)
public SqlCeDB(Dictionary<string, string> options)

我想把所有的逻辑都构建到最后一个构造函数中,并让其他的把控制权传给它

public SqlCeDB(string filename)
    : this(new Dictionary<string, string> { { "DataSource", filename } })
{
}

但是,有办法做到这一点吗?如上所述,我想创建一个新的Dictionary,但我也需要复制现有Dictionary中已经存在的名为"options"的选项。

当然-只需调用创建现有构造函数副本的构造函数:

public SqlCeDB(string filename, Dictionary<string, string> options)
    : this(new Dictionary<string, string>(options) {
               { "DataSource", filename }
           })
{
}

集合初始值设定项仍然可以像往常一样调用参数化构造函数。请注意,这将创建一个新的字典,而不仅仅是将新条目添加到现有条目中。

相关内容

最新更新